版权声明:希望能帮到弱校的ACMer成长,因为自己是弱校菜鸡~~~~ https://blog.csdn.net/Mr__Charles/article/details/82871282
定义:
二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。
简单用途:
从有序数组中查找某个值,这是一开始学习二分搜索的经典例子。
拓展用途:
用于求最优解的问题,如:满足某个条件C(x)的最小(最大)x。
首先我们将区间的左端点初始化为不满足C(x)的值,右端点初始化为满足C(x)的值。然后每次取中点mid = (L+R)/2,判断C(mid)是否满足并缩小范围,直到(L,R]足够小了为止。最后R就是要求的最小值(这句话有歧义,主要还是看题目,不一定答案就是R)。最大值问题也可以用同样方法。
(PS:L为左端点,R为右端点)
经典的三类拓展:
1.假定一个解并判断是否可行
2.最大化最小值
3.最大化平均值
练习题: