二分查找代码模板

二分查找代码模板:

(right - left)>>1 相当于 (right - left)/2

右移运算符>>,运算结果正好能对应一个整数的二分之一值,这就正好能代替数学上的除2运算,但是比除2运算要快。

 

public int findIndexOf(int[] nums, int target) {
    int left = 0;
    int right = nums.length - 1;
    while (left <= right) {
        int mid = left + ((right - left) >> 1);
        if (nums[mid] == target) {
            return mid;
        } else if (nums[mid] > target) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    return -1;
}

 

posted @ 2020-07-17 16:58  gaopengpy  阅读(214)  评论(0编辑  收藏  举报