二分查找模板
Posted YANGHSL的技术分享
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找模板相关的知识,希望对你有一定的参考价值。
二分模板一共有两个,分别适用于不同情况。算法思路:假设目标值在闭区间[left, right]
中, 每次将区间长度缩小一半,当left = right
时,我们就找到了目标值。
版本一:当我们将区间[left, right]
划分成[left, mid]
和[mid + 1, right]
时,其更新操作是right = mid
或者left = mid + 1
;,计算mid
时不需要加1
int binarySearch(int left , int right){
while (left < right){
int mid = (left + right) / 2;
if (check(mid)) right = mid;
else left = mid+1;
}
}
版本二:当我们将区间[left, right]
划分成[left, mid - 1]
和[mid, right]
时,其更新操作是right = mid - 1
或者left = mid
,此时为了防止死循环,计算mid时需要加1。
int binarySearch(int left, int right){
while (left < right){
int mid = (left + right +1) / 2;
if (check(mid)) l = mid;
else right = mid;
}
return left;
}
以上是关于二分查找模板的主要内容,如果未能解决你的问题,请参考以下文章