二分查找

二分查找-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;
    }

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务