防止死循环——关于二分查找的细节
如何防止二分查找出现死循环
(咕咕咕中)
防止死循环最稳的办法当然是固定循环次数,最后特判边界,但是平时总是懒得这么写……
自然数域
中位数是向下取整还是向上取整取决于分支怎么写
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;
}