分析:二分查找就是让目标值与数组的中间值进行比较,如果目标值大于中间值,则将比较范围缩小到中间值左边;如果目标值小于中间值,则将比较范围缩小到中间值右边。然后继续比较,直到找到中间值! 实现:
public int search (int[] nums, int target) {
// write code here
int l=0;//左边界
int r=nums.length-1;//右边界
int m=0;//中间值
while(l<=r){
m=(l+r)>>>1;
if(target==nums[m]){
//如果目标值与中间值相等,直接返回
return m;
}else if(target>nums[m]){
//如果目标值大于中间值
l=m+1;//将左边界设为中间值加1
}else{
//如果目标值小于中间值
r=m-1;//将右边界设为中间值减1
}
}
return -1;
}