class BinarySearch {
public static int binarySearch(int[] array, int target){
int l = 0, r = array.length - 1; // 在[l...r]的范围里寻找target
while (l<=r) { // 当 l == r 时,区间[l,r] 依然是有效的
int mid = (l + r) / 2;
// int mid = l + ( r - 1 ) / 2; // 避免整型溢出
if(array[mid] == target){ // 当 array[mid] == target 时,target == l == r
return mid;
}
if(array[mid] < target){ // array[mid] < target,target 在 array[mid] 右边
l = mid + 1;
}
if(array[mid] > target){ // array[mid] > target,target 在 array[mid] 左边
r = mid - 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8,9};
System.out.println(binarySearch(array,9));
}
}
网友评论