二分查找

int binarySearch(int[] nums, int target) {
    int left = 0, right = ...;

    while(...) {
        int mid = (right + left) / 2;
        if (nums[mid] == target) {
            ...
        } else if (nums[mid] < target) {
            left = ...
        } else if (nums[mid] > target) {
            right = ...
        }
    }
    return ...;
}

二分查找的框架

尽量用else if

计算 mid 时需要技巧防止溢出,建议写成: mid = left + (right - left) / 2

posted @ 2021-04-20 11:50  shaon111  阅读(38)  评论(0)    收藏  举报