二分查找
二分查找-I
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
public int search (int[] nums, int target) {
// write code here
if (nums.length == 0)
return -1;
int left = 0, right = nums.length - 1, mid = 0;
while (left <= right) {
//取中间值,右移一位表示除2
mid = (left + right) >>1;
//大于目标值 表示target在左边,改变有边界
if (nums[mid] > target)
right = mid - 1;
//小于目标值 表示target在右边 改变左边界
else if (nums[mid] < target)
left = mid + 1;
//left=right=mid 找到返回target
else
return mid;
}
//否则返回-1
return -1;
}