折半插入排序
2016-06-08 22:03
176 查看
从直接插入排序的过程可以看出,在每趟直接插入排序的过程中,均在有序区寻找插入位置,因此可以采用折半查找的方法寻找插入位置,这就是折半插入排序。
折半插入排序与直接插入排序相比,紧减少了关键字之间的比较次数,而数据元素的移动次数不变,折半插入排序的时间复杂度仍未O(n2).
折半插入排序与直接插入排序相比,紧减少了关键字之间的比较次数,而数据元素的移动次数不变,折半插入排序的时间复杂度仍未O(n2).
public class InsertSort { /*使用折半插入法进行排序*/ public static void main(String[] args) { int array[]=new int[]{9,8,7,6,5,4,3,2,1}; //把待排序的数存放在数组中 int i,j,temp; int low,high,mid; for(i=1;i<array.length;i++){//需要进行n-1趟插入排序 temp=array[i]; low=0; high=i-1; while(low<=high){ //折半查找插入位置 mid=(low+high)/2; if(array[mid]>temp){ high=mid-1; }else{ low=mid+1; } } for(j=i-1;j>=low;j--){ //后移 array[j+1]=array[j]; } array[low]=temp; //插入 } for(i=0;i<array.length;i++){ System.out.print(array[i]+" "); } } }
相关文章推荐
- Ubuntu 14.04+Opencv-2.4.9+Qt配置
- 2016-6-8
- 梦断代码阅读笔记01
- Appium+Robotframework实现手机应用的自动化测试-1:Appium简介
- 用Redis存储Tomcat集群实现Session共享
- 第15周阅读程序(1)
- 【HTML笔记三】认识标签二
- .典型用户 - 场景
- C++第二次上机5-5
- 网友收集的JQuery代码(收集汇总)
- freemarker list (长度,遍历,下标,嵌套,排序)
- IplImage 结构体的解释
- tarjan算法求桥双连通分量 POJ 3177 Redundant Paths
- 1048 - Conquering Keokradong
- Design库-SnackBar属性详解
- redis实现有序的消息队列
- 大数据业界最新动态(2016.07.26,第14期,不断更新中)
- 使Vim更适合编代码
- Java回顾篇——多态性深入理解。
- JUC锁机制