二分法
二分法又叫二分查找,折半查找,是一种高效的查找算法。
- 时间复杂度为O(logn),空间复杂度为O(1)
- 一般情况下,用于 有序数列 上查找某个
target
值 - 使用了 减治 的算法思想而非分治(另一半不需要处理)
相关问题
经典
注意:
- 是否存在重复值
- 循环边界
int mid = left + (right - left) / 2;
避免出界
找数组中第一个/最后一个满足某个条件的位置
OOOOOO XXXXXXX
在未排序的数据集上进行二分
无法找到一个条件,形成XXOO的模型,但可以根据判断,保留下有解的那一半或者去掉无解的一半。