public int binarySearch(int[] a, int fromIndex, int toIndex, int x) {
int lo = fromIndex, hi = toIndex-1;
while (lo <= hi) {
int mid = lo + (hi - lo) / 2;
if (x > a[mid]) lo = mid + 1;
else if (x < a[mid]) hi = mid - 1;
else return mid;
}
return -(lo+1);
}
int index = binarySearch(a, i, j, x);
if (index < 0)
则 -(index + 1) 就是x该插入的位置
Arrays.binarySearch()
最新推荐文章于 2023-11-01 14:28:10 发布