基本定义:
折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点
可以采用折半查找的方法来加快寻找插入点的速度
思想:
直接插入 链接地址
https://blog.csdn.net/qq_42937982/article/details/113657011
折半插入 链接地址
https://blog.csdn.net/qq_42937982/article/details/113660390
代码:
public static void Search(int A[]){
int i, j, temp;
int low, high, mid;
for (i = 1; i < A.length; i++) {
temp = A[i];//将待插入的记录暂存到监视哨中
//以下是折半查找的位置
low = 1;
high = i - 1;
while (low <= high) {
mid = (low + high) / 2;//折半
if (A[mid] > A[0]) {
high = mid - 1;//说明插入点在左边的表中
} else {
low = mid + 1;//否则插入点在后一表中
}
}
for (j = i; j > 0 && A[j - 1] > temp; j--) {
A[j] = A[j - 1];//移出空为
}
A[j] = temp;
}
}