分析:二分查找就是让目标值与数组的中间值进行比较,如果目标值大于中间值,则将比较范围缩小到中间值左边;如果目标值小于中间值,则将比较范围缩小到中间值右边。然后继续比较,直到找到中间值! 实现:

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;
       
    }