java版折半插入排序代码:
//折半插入排序算法
int []arr6 = {23,12,48,56,45};
int i,j,low,high,mid;
//ArrayList<Integer> arrayList = new ArrayList<>();
int tmp ;
for(i = 1; i < arr6.length; i++) {
tmp = arr6[i]; // 将arr6[i]保存到arrayList中
low = 0;
high = i -1;
while (low <= high)
{
mid = (low + high)/2;
if(tmp < arr6[mid])
high = mid -1;
else
low = mid +1;
}
for(j = i -1; j>= high+1; j--)
arr6[j+1] = arr6[j];
arr6[high +1] = tmp;
}
int c = 0;
for (int element:arr6
) {
System.out.println("折半插入排序算法第" + c++ + "个元素: " + element);
}
测试结果:
-------开始测试折半插入算法--------
折半插入排序算法第0个元素: 12
折半插入排序算法第1个元素: 23
折半插入排序算法第2个元素: 45
折半插入排序算法第3个元素: 48
折半插入排序算法第4个元素: 56