程序中不要同时出现l = mid, r = mdi这两条语句。
如过程序中出现了l = mid,mid的值用 (l + r + 1) / 2计算。
如果程序中出现了r = mid,mid的值用((l + r) / 2计算。
int l = 0, r = n;//n为初始时区间右端点,
while(l < r){//l< r进行二分,l = r的时停止二分
int mid = 中间点;
if (更新r的条件成立)
更新r;
else
更新l;
}
//循环结束时,[l,r]区间内只有一个元素
if (区间内元素是答案)
输出答案;
else
答案不存在;