整数二分

123455555555555678
找第一个5:A[mid] >= 5

while(l < r) {
    int mid = l + r >> 1;
    if(A[mid] >= k) {
        r = mid;
    } else {
        l = mid + 1;
    }
}

最后一个5:A[mid] <= 5

while(l < r) {
    int mid = l + r + 1 >> 1;
    if(A[mid] <= k) {
        l = mid;
    } else {
        r = mid - 1;
    }
}

此外,mid是在while里面生成的。

posted @ 2022-10-08 23:20  wushucan  阅读(9)  评论(0)    收藏  举报