C语言直接插入排序算法(yaml)
C语言直接插入排序算法
插入排序是把一个记录插入到已排序的有序序列中,使整个序列在插入该记录后仍然有序。插入排序中较简单的种方法是直接插入排序,其插入位置的确定方法是将待插入的记录与有序区中的各记录自右向左依次比较其关键字值的大小。本实例要求使用直接插入排序法将数字由小到大进行排序。
实现过程:
(1) 自定义一个函数,实现直接插入排序,在本实例中,我们自定义该函数为 insort()。(2) main() 函数为程序的入口函数。程序代码如下:includeint insort(int s[], int n) /* 自定义函数 insort()*/ { int i,j; for(i=2;i<=n;i++) //数组下标从2开始,s[0]做监视哨,s[1]一个数据无可比性 { s[0]=s[i]; //给监视哨陚值 j=i-1; //确定要比较元素的最右边位黄 while(s[0] 运行结果:
请输入10个数据:25 12 36 45 2 9 39 22 98 37原始顺序:25 12 36 45 2 9 39 22 98 37插入数据排序后顺序:2 9 12 22 25 36 37 39 45 98aux.是什么词性
技术要点:
本实例算法过程如表 1 所示。原始顺序:25 12 36 45 2 9 39 27 98 37
表1 直接插入排序过程 趟数 监视哨 排序结果 1 25 (12,)25,36,45,2,9,39,22,98,37 2 12 (12,25,)36,45,2,9,39,22,98,37 3 36 (12,25,36,)45,2,9,39,22,98,37 4 45 (12,25,36,45,)2,9,39,22,98,37 5 2 (2,12,25,36,45,)9,39,22,98,37 6 9 (2,9,12,25,36,45,)39,22,98,37 7 39 (2,9,12,25,36,39,45,)22,98,37 8 22 (2,9,12,22,25,36,39,45,)98,37 9 98 (2,9,12,22,25,36,39,45,98,)37 10 37 (2,9,12,22,25,36,37,39,45,98,) 指点迷津:
本算法中使用了监视哨,主要是为了避免数据在后移时丢失。
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: C语言的优点和缺点(c++入门教程)
- 下一篇: C语言程序的错误和警告(数据结构)