问题:java面试之二分排序
解决方案:
public void binarySort(int[] arr) { int len = arr.length; int low = 0, high = 0, mid = 0; int temp = 0; for (int i = 1; i < len; i++) { low = 0; high = i - 1; temp = arr[i]; while (low <= high) { mid = (low + high) / 2; if (arr[mid] > temp) { high = mid - 1; } else { low = mid + 1; } } for (int j = i - 1; j > high; j--) { arr[j + 1] = arr[j]; } arr[high + 1] = temp; } }