【排序算法总结】直接插入排序
来源:互联网 发布:java审批流程 编辑:程序博客网 时间:2024/06/10 04:12
将一个记录插入到已排序好的有序表中,得到一个新的记录数增加1的有序表。先将序列的第一个记录看成是一个有序的子序列,第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。
下面以几个数为例进行插入排序:
上面的排序是手动排出来的,取无序序列的第一个数为监视哨,与前面的数进行比较如果有序序列的关键字大于监视哨则关键字后移,监视哨插入。下面通过程序实现,看最后的输出结果是否吻合
public static void main(String[] args){ int a[]={7,5,3,4,1,2,6,8,9,0}; for (int i = 1; i <a.length ; i++) { //无序序列,第一个为有序序列,从第二个开始进行排序 //先看岗哨的值是否比有序序列的最后一个值大,如果大不用交换排序,如果小,则需要继续比较排序 if(a[i]<a[i-1]){ int temp=a[i];//用于保存i位的值 int k=i-1; for (int j = k; j>=0 && temp <a[j] ; j--) { a[j+1]=a[j]; k--; } a[k+1]=temp; } System.out.print("第" + (i) + "次排序结果:"); for(int m = 0; m < a.length; m++) { System.out.print(a[m] + "\t"); } System.out.println(""); } System.out.print("最终排序结果:"); for(int n = 0; n < a.length; n++) { System.out.print(a[n] + "\t"); } }
阅读全文
0 0
- 排序算法总结之直接插入排序
- 排序算法总结---直接插入排序
- 排序算法总结---直接插入排序
- 【排序算法总结】直接插入排序
- 直接插入排序算法知识总结
- 算法总结(2)直接插入排序
- [排序算法,插入排序]--直接插入排序
- 直接插入排序算法
- 直接插入算法排序
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- Linux SPI总线和设备驱动架构之一:系统概述
- Python 进程线程之间通信方式(2.1,共享数据实现进程之间通信)
- 2010-2011 ACM-ICPC Northeastern European Regional Contest (NEERC 10) G
- Nginx中的负载均衡
- C
- 【排序算法总结】直接插入排序
- 点的统计
- i am a student.转为student. a am i
- 存储管理-操作系统-程序员面试
- python进程池的复习
- 使用Docker搭建Struts2-048漏洞环境及Python PoC验证
- loadrunner录制有很多无关脚本应该怎样设置?
- 编译并使用boost库(win7+boost1.60+vs2013)
- 131_容器_HashTable与Properties_绝对相对类路径存储与读取