说明
因为平时不是很常用二分法排序,但是有时候会有要求使用二分法排序,所以就把板子放在这里可以直接参考,照着这个样子可以进行适当的改动。
代码
这里用一个整数数组进行示范,比较清晰明了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| int[] arr = {49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1}; for (int i = 1; i < arr.length; i++) { int temp = arr[i]; int low = 0; int high = i - 1; int mid = -1; while (low <= high) { mid = low + (high - low) / 2; if (arr[mid] > temp) { high = mid - 1; } else { low = mid + 1; } } for(int j = i - 1; j >= low; j--) { arr[j + 1] = arr[j]; } arr[low] = temp; } for (int i = 0; i < arr.length ; i++) { System.out.print(arr[i]+" "); }
|
参考
原文链接:https://blog.csdn.net/love_gzd/java/article/details/81516847