二分排序:直接插入排序+二分搜索
2013-08-17 16:02
239 查看
/** * 二分排序:直接插入排序+二分搜索 * 即用二分搜索定位元素插入位置 */ package test; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] a = {2,4,8,1,5,10,3,-5,0}; int i,j; int low,high,mid; int temp; for(i=1; i<a.length; i++){ temp = a[i]; low = 0; high = i-1; while(low <= high){ mid = (low+high)/2; if(a[mid]>temp){ high = mid-1; }else{ low = mid+1; } }//此时,high位置的元素小于等于temp----接下来把temp插入high+1的位置 for(j=i-1; j>high; j--){ a[j+1] = a[j];//后移 } a[high+1] = temp;//插入 /*//输出排序结果 for(int x=0; x<a.length; x++){ System.out.printf("%d ",a[x]); } System.out.println("");*/ } //输出排序结果 for(i=0; i<a.length; i++){ System.out.printf("%d ",a[i]); } } }
相关文章推荐
- 插入算法 二分搜索 读数据结构与算法-C++
- 数据结构图文解析之:直接插入排序及其优化(二分插入排序)解析及C++实现
- 5-3 二分搜索树的节点插入(插入新的节点)
- 排序算法(选择、希尔、二分插入、冒泡、直接插入、快速排序)
- 直接插入排序、二分插入排序、希尔排序、冒泡排序与简单选择排序
- c语言归并、选择、直接插入、冒泡、快速、堆排序与顺序、二分查找
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- 常见排序集合(冒泡排序,选择排序,直接插入排序,二分插入排序,快速排序,希尔排序,归并排序)
- 二分直接插入排序
- 挖掘算法中的数据结构(六):二分查找 和 二分搜索树(插入、查找、深度优先遍历)
- Python使用二分插入排序竟然比直接插入排序快99倍!
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- 插入排序——直接插入排序、二分插入排序、希尔排序
- 插入算法(直接插入,二分插入,希尔)
- leetcode 35. Search Insert Position搜索插入位置(二分查找)
- wukong引擎源码分析之搜索——docid有序的数组里二分归并求交集,如果用跳表的话,在插入索引时会更快
- 我在北京找工作(三):java实现算法<2> 直接插入排序+不可变类
- 冒泡排序,选择排序,直接插入排序,二分查找排序
- 三种插入排序的分析(直接插入-二分插入-Shell排序)
- Java使用二分插入排序竟然和直接插入排序速度相差不多