排序算法之直接插入排序
2016-03-30 17:52
302 查看
直接插入排序是将数组分成有序和无序两部分,每次将当前未排序的数和有序部分比较,移动有序部分,找到未排序数的插入点。
下面一种代码实现:
private static void insertionSort(int[] a, int first, int end) { for (int i = first + 1; i <= end; i++) { int firstUnsorted = a[i]; insertInorder(firstUnsorted,a,first,i-1); } } private static void insertInorder(int unsort, int[] a, int first, int end) { int index = end; while(index >= first && unsort < a[index] ){ a[index + 1] = a[index]; index --; } a[index + 1] = unsort; }
下面一种代码实现:
private static void insertSort(int[] a){ int temp,i,j; for (i = 1; i < a.length; i++) { if(a[i] < a[i-1]){ temp = a[i]; for (j = i-1; j >= 0 && temp < a[j]; j--) { a[j+1] = a[j]; } a[j+1] = temp; } } }
相关文章推荐
- WinPcap权威指南(四):UDP与DNS欺骗
- 笔记
- Javascript图表插件HighCharts用法案例
- c# label的内容显示不全
- 区分PC端与移动端代码,涵盖C#、JS、JQuery、webconfig
- JS回调函数(callback)
- OCR----Python调用Tesseract引擎(Ubuntu下)
- spring注入的方式实现静态方法中使用非静态变量
- IT十八掌作业_java基础第十三天_IO
- HTML学习(三)——表格
- java多线程-BlockingQueue(阻塞队列)
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
- Tomcat7.0源码分析——类加载体系
- {head first} --- networking 2
- 《数据结构》 队列(Queue)操作代码集合
- android密度
- hdu 2073 无限的路
- AngularJS 应用入门
- 常见面试题总结
- 常见面试题总结