Loading

二分查找


public int search(int value, int[] arr) {
    int l = 0, r = arr.length - 1;
    while (l <= r) {
        // 这里使用无符号右移,可以避免溢出问题
        int mid = (l + r) >>> 1;
        if (arr[mid] == value) {
            return mid;
        } else if (arr[mid] > value) {
            r = mid - 1;
        } else {
            l = mid + 1;
        }
    }
    return -1;
}

posted @ 2022-07-31 18:45  沿途有余弦  阅读(31)  评论(0)    收藏  举报