二分查找
1. 基本思想
- 每次获取中间位置的数字,然后跟目标比较。如果比目标大,则说明要找的在左区间。比目标小,则说明要找的在右区间。
- 然后在左区间或者右区间在重复第一步。
2. 代码
public int search(int[] nums, int target) {
//if(nums[0] == target) return 0;
int left = 0, right = nums.length-1;
while(left <= right) {
int mid = (left + right) /2;
int num = nums[mid];
if(num == target) {
return mid;
}else if(num > target) {
//当前值大于目标值,说明要往左找
right = mid - 1;
}else {
left = mid + 1;
}
}
return -1;
}