public int search(int[] nums, int target) {
int low=0, high=nums.length-1;
while (low<=high) {
int mid = (low+high)/2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] > target) {
high = mid-1;
} else {
low = mid+1;
}
}
return -1;
}
以上是一个常规的二分查找法代码,循环的退出条件是low<=high而不是low<high,是为了避免在遇到只有一个元素的数组时直接退出循环而不进行判断