直接插入排序
来源:互联网 发布:高达最强ma 知乎 编辑:程序博客网 时间:2024/06/11 02:24
#include<stdio.h> //直接插入排序 //插入排序是把一个记录插入到已排序的有序序列中,使整个序列在插入该记录之后仍然有序 //插入排序中较简单的一种方法就是直接插入排序,其插入位置的确定方法是将待插入的记录 //与有序区的各记录自右向左依次比较其关键字的值的大小,本实例要求使用直接插入排序法将数字 //由小到大进行排序void insort(int s[],int n) //自定义函数insort{ int i,j,k,count=1;//count计算交换的次数 for(i=2;i<=n;i++)//数组下标从2开始,s[0]做监视哨,s[1]一个数据无可比性 { s[0]=s[i]; //给监视哨赋值 j=i-1; //确定要比较元素的最右边的位置 while(s[0]<s[j]) { s[j+1]=s[j]; //数据右移 j--; //移向左边的一个未比较的数 /* //测试结果 printf("第%d次中间结果:\n",count); for(k=0;k<=10;k++) printf("%5d",s[k]); printf("\n"); count++; */ } s[j+1]=s[0]; //在确定的位置插入s[i] printf("第%d次遍历:\n",i-1); for(k=1;k<=10;k++) printf("%5d",s[k]); printf("\n"); }}void main(){ int a[11],i; //定义数组及变量为基本类型 printf("请输入10个数据:\n"); for(i=1;i<=10;i++) scanf("%d",&a[i]); printf("原始顺序:\n"); for(i=1;i<11;i++) printf("%5d",a[i]); printf("\n"); insort(a,10); printf("\n插入数据后排序:\n"); for(i=1;i<11;i++) printf("%5d",a[i]); printf("\n");}
end
MrBread 2017-02-07
0 0
- 插入排序--直接插入
- 插入排序------直接插入
- 插入排序---直接插入
- 排序:直接插入排序
- 排序---直接插入排序
- 排序 -- 直接插入排序
- 排序---直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序:直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 插入排序--直接插入排序
- 插入排序-直接插入排序
- SQL调优
- think in java interview-高级开发人员面试宝典(七)
- HBase 默认配置说明(收藏版) http://www.aboutyun.com/thread-7914-1-1.html (出处: about云开发)
- 我的学习笔记-->String类和StringBuffer类的区别
- 设计模式--6.装饰模式
- 直接插入排序
- cf 759 A Pavel and barbecue
- C++ Primer 第5版--练习9.26
- 414. Third Maximum Number
- TortoiseGit操作本地仓库的详细使用方法(2)-分支操作
- nginx下配置urlrewrite 单一入口
- CentOS记事
- 初学者必看的Ajax总结篇
- unity 通过使用 photon networking Pun 实现 HTC Vive VR的多人联网。进阶版 《二》