二分查找
public int search(int value, int[] arr) {
int l = 0, r = arr.length - 1;
while (l <= r) {
// 这里使用无符号右移,可以避免溢出问题
int mid = (l + r) >>> 1;
if (arr[mid] == value) {
return mid;
} else if (arr[mid] > value) {
r = mid - 1;
} else {
l = mid + 1;
}
}
return -1;
}

浙公网安备 33010602011771号