把答案所在的区间逐渐缩小,直到区间内只有答案。

登录以参加训练计划

二分

二分法,你思考过这些问题吗?

如何优雅的处理边界条件?

一定要数据有序时才能使用二分法吗?

如何优雅的证明二分法的时间复杂度是O(logn)?

什么是二分法?

​ ​二分法​(Bisection method),即一分为二的的方法。对于在区间[a,b]上连续不断且满足f(a)*f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在区间二等分,使区间两个端点逐步逼近零点,进而得到零点的近似值的方法。

​ ​说人话​:把答案所在的区间逐渐缩小,直到区间内只有答案。

比如猜数字游戏:给定一个1--100之间的正整数,让你猜。猜的过程中给出大小判断的提醒,问怎么才能快速地猜出来? 最快的方法是:每次猜区间的中间点的数字。如果中间点大于给定数字,下次就猜前半部分的中间点数字;如果中间点数字小于给定数字,下次就猜后半部分的中间点数字。

章节 1. 二分法

开放

题目 尝试 AC 难度
P237  查找数 0 0 (无)
D1041  二分查找(lower_bound) 14 1 10
D1042  二分查找(upper_bound) 15 0 10
P236  查找特定元素最后一次出现的位置 0 0 (无)
D1043  计算函数零点 6 2 10
D1044  计算函数最小值 0 0 (无)
D2013  差距过大的数对数量 7 2 10
NOIPS2015D  跳石头 0 0 (无)
P175  「一本通 1.2 例 1」愤怒的牛 0 0 (无)
P176  「一本通 1.2 练习 1」数列分段 II 0 0 (无)
P238  查找最接近的元素 4 0 10
P1451  同时出现的数 2 1 10
P1452  最满意的方案 0 0 (无)
P1453  二分查找满足条件的数 2 1 10
P1454  起止位置 1 1 10
P1455  小X算排名 5 2 10
 
参加人数
2
创建人