数据算法之折半插入排序(binInsertSort)的Java实现
2017-05-08 00:00
246 查看
本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。
折半插入排序方法的思想是,先以第一个数为基准,作为一个有序的数列,依次把它后面的数字以折半的方式插入这个有序的数列。
如下图所示:
数组的前五位已经排好,现在要将1排序。
Java具体实现代码:
输入:数据元素数组r,数组r 的待排序区间[low..high]
输出:数组r 以关键字有序
代码:
折半插入排序方法的思想是,先以第一个数为基准,作为一个有序的数列,依次把它后面的数字以折半的方式插入这个有序的数列。
如下图所示:
数组的前五位已经排好,现在要将1排序。
Java具体实现代码:
输入:数据元素数组r,数组r 的待排序区间[low..high]
输出:数组r 以关键字有序
代码:
public void binInsertSort(Object[] r, int low, int high){ for (int i=low+1; i<=high; i++){ Object temp = r[i]; //保存待插入元素 int hi = i-1; int lo = low; //设置初始区间 while (lo<=hi){ //折半确定插入位置 int mid = (lo+hi)/2; if(strategy.compare(temp,r[mid])<0) hi = mid - 1; else lo = mid + 1; } for (int j=i-1;j>hi;j--) r[j+1] = r[j]; //移动元素 r[hi+1] = temp; //插入元素 }//for }
相关文章推荐
- 数据算法之折半插入排序(binInsertSort)的Java实现
- 数据算法之插入排序(insertSort)的Java实现
- 数据算法之插入排序(insertSort)的Java实现
- 数据算法之希尔排序(shellSort)的Java实现
- 数据算法之希尔排序(shellSort)的Java实现
- 数据算法之折半查找(binSearch)的Java实现
- 数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
- 数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
- 数据算法之折半查找(binSearch)的Java实现
- 数据算法之二叉树平衡(BinTreeNode Rotate)的Java实现
- 算法——数据结构图的最短路径实现JAVA代码
- 【数据结构与算法】汉诺塔算法——java递归实现
- Java数据结构与算法(26) - ch12堆(堆实现)
- 数据算法基于FPGA的图像处理(七)--Verilog实现均值滤波Strut2教程-java教程
- 几种sort算法的Java实现
- Java实现算法归并排序(MergeSort)
- 数据挖掘:K最近邻(KNN)算法的java实现
- 数据挖掘贝叶斯(Bayes)算法java实现 带注释详解
- 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文档分类器的JAVA实现(下)
- 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文本分类器的JAVA实现(下)