防止死循环——关于二分查找的细节

如何防止二分查找出现死循环

(咕咕咕中)

防止死循环最稳的办法当然是固定循环次数,最后特判边界,但是平时总是懒得这么写……

自然数域

中位数是向下取整还是向上取整取决于分支怎么写

int Binary_Search(int l, int r) {
    while(l < r) {
        int mid = l + r >> 1; // 中位数向下取整
        if(/*判断条件*/) l = mid + 1;
        else r = mid;
    }
    return l;
}
int Binary_Search(int l, int r) {
    while(l < r) {
        int mid = l + r + 1 >> 1; // 中位数向上取整
        if(/*判断条件*/) l = mid;
        else r = mid - 1;
    }
    return l;
}
posted @ 2021-05-04 22:25  jht_cnblogs  阅读(278)  评论(0编辑  收藏  举报