插入排序(C语言)
输入一个数,插入到已排序的队列中
第一:定义一个已经排好的整型数组
如:
int arry[7]={2,3,5,11,15,17};
或输入一串整型的数组,再排序(冒泡、选择都可以)
下面我们用冒泡排序方法:
#include<stdio.h>
int main()
{
int i,j,min=0, num[7];
for(i=0;i<6;i++)
{
printf("请输入第%d个数",i+1);
scanf("%d",&num[i]);
}
for(j=0;j<6;j++)
{
for(i=0;i<6;i++)
{
if(num[i]>num[i+1])
{
min=num[i+1];
num[i+1]=num[i];
num[i]=min;
}
}
}
for(i=0;i<6;i++)
{
printf(" %d ",num[i]);
}
return 0;
}
第二:输入一个数num1;
代码:
int num1;
printf("请数入一个是数:");
scanf("%d",&num1);
第三:找到输入数插入的位置(找到下标index)
分三种情况
①、num1大于前一个数,小于后一个数
②、num1小于最小的数
③、num1大于最大的数
int i=0;
int index=0;
for(i;i<6;i++)//找到index要插入的下标位置
{
if(num1>=num[i]&&num1<=num[i+1])
{
index=i+1;
break;
}
if(num1<num[0])
{
index=0;
break;
}
if(num1>num[5])
{
index=6;
break;
}
}
第四:找到下标后(插入的位置),从插入的位置开始到数组结束之间的数,后面一个等于前面一个值(实现移动赋值过程)
for(i=6;i>index;i--)//移动
{
num[i]=num[i-1];
}
num[index]=num1;//找到下标赋值
第五:输出数组num
for(i=0;i<7;i++)
{
printf("%d,",num[i]);
}
整体代码如下:
#include<stdio.h>
int main(void)
{ int num[7]={2,3,5,11,15,17},num1;
printf("请数入一个是数:");
scanf("%d",&num1);
int i=0;
int index=0;
for(i;i<6;i++)//找到index要插入的下标位置
{
if(num1>=num[i]&&num1<=num[i+1])
{
index=i+1;
break;
}
if(num1<num[0])
{
index=0;
break;
}
if(num1>num[5])
{
index=6;
break;
}
} for(i=6;i>index;i--)//移动
{
num[i]=num[i-1];
}
num[index]=num1;//找到下标赋值
for(i=0;i<7;i++)
{
printf("%d,",num[i]);
}
}
插入排序(C语言)的更多相关文章
- 插入排序_C语言_数组
插入排序_C语言_数组 #include <stdio.h> void insertSort(int *); int main(int argc, const char * argv[]) ...
- 插入排序——C语言
插入排序 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. (每步将一个待 ...
- 插入排序C语言版本
算法思路: 每趟将一个待排序的元素作为关键字,按照其关键字值的大小插入到已经排好的部分的适当位置上,直到插入完成. 数组中待排序的关键字前面的数据为已经排序的数据,关键字插 ...
- 希尔排序——C语言
希尔排序 希尔排序是插入排序的一种,又称“缩小增量排序”,希尔排序是直接插入排序算法的一种更高效的改进版本,关于插入排序可以看下这篇随笔:插入排序——C语言 (图片来源:https://www.cnb ...
- 2-路插入排序(2-way Insertion Sort)的C语言实现
原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia 2-路插入排序(2-way Insertion Sort)的基本思想: 比fis ...
- 折半插入排序(Binary Insertion Sort)的C语言实现
原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia 折半插入排序(Binary Insertion Sort)的基本思想是将新记录插入到已经 ...
- 直接插入排序(Straight Insertion Sort)的C语言实现
原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia 直接插入排序(Straight Insertion Sort)的基本思想是将新记录插入到 ...
- 数据结构C语言版 表插入排序 静态表
数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P270 编译 ...
- 深入浅出数据结构C语言版(16)——插入排序
从这一篇博文开始,我们将开始讨论排序算法.所谓排序算法,就是将给定数据根据关键字进行排序,最终实现数据依照关键字从小到大或从大到小的顺序存储.而这篇博文,就是要介绍一种简单的排序算法--插入排序(In ...
- C语言学习之插入排序
此前的一些博文分别写了C语言中经典的排序方式,选择排序 冒泡排序 桶排序,此文就写 插入排序吧. 相对于冒泡排序,插入排序就比较方便快捷了.和冒泡 选择排序一样,插入排序也需要比较大小.可以这样理解插 ...
随机推荐
- 使用 CustomScript 扩展程序自动执行 Linux 虚拟机自定义任务
NingKuangWSSC WS ARD 高级项目经理 您可能已经从Windows扩展程序博客中了解了针对 Windows 虚拟机的 CustomScript扩展程序,现在的好消息是,这一扩展程序也已 ...
- I - Strategic Game - hdu 1054(最小点覆盖)
题意:用最小的点来覆盖全部的边,因为二分图里面最大的匹配就是最小覆盖,所以直接匹配一下即可 ****************************************************** ...
- 禁止UITextField 使用粘贴复制功能
在开发中有时候会遇到这样的需求,就是一个文本框里面的内容不允许用户复制,或者不允许用户将其它地方复制的内容粘贴进来,本文交给你怎么实现禁止 UITextField 的粘贴.复制. 在 UITextFi ...
- spring-mvc.xml配置文件出错
在整合ssm三大框架的时候,配置spring-mvc.xml的文件的 <mvc:default-servlet-handler/> <mvc:annotation-driven /& ...
- WPF - 这是一堆代码片段的集合
1. Image的Source设定,引用的图片文件在其他的dll中.图片的Build action : Resource 如果是直接写: Source="/MyProject.Resourc ...
- 斐波那契数列 51nod
1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) ...
- 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
- 百度2014校园招聘算法——给出一组数据A=[a_0, a_1, a-2, ... a_n](当中n可变),打印出该数值元素的全部组合。
VC++ void StringTest(CString source, CStringArray& dest) { if(source.IsEmpty()) { } else { CStri ...
- [RxJS] Creation operators: interval and timer
It is quite common to need an Observable that ticks periodically, for instance every second or every ...
- unity3d Find()使用
1. Hierarchy 创建对象如两个cube时,未修改名称,名称都为cube时. js添加至Camera: private var cubeObj : GameObject; //private ...