二分查找和三分求单峰函数极值

本文深入探讨了二分查找和三分查找算法在单调递增数列和单峰函数中的应用,详细讲解了如何通过调整搜索区间来高效定位目标值,时间复杂度达到log级别。

二分查找

对于一个单调递增的数列,我们可以从头到尾遍历一遍求出所求值的位置,这样的时间复杂度毫无疑问的o(n)的,我们可以对其二分求出所需要的值。二分的写法有很多,根据问题的不同会有不同的写法。所有我们在这里只讲思路。假设这个区间是单调递增的,对于区间[l,r]我们可以找出中间点mid=(r+l)>>1,对中间的值和所需要的值进行比较,如果mid的值大于所求值,r=mid-1。反之,l=mid+1。重复此步,直到找出答案。

单峰函数

如果这个函数拥有唯一的极大值点(极小值点),且在极大值(极小值)的左侧单调递增(递减),极大值(极小值)的右侧单调递减(递增)。我们可以称这种函数是单峰函数。我们也可以称后一种函数是单谷函数。

三分求单峰函数的级值

单峰函数设为f,我们在区间上任取两点r,l。
如果f®<f(l),l和r要么同时处于极大值的右侧,要么位于极大值的两侧。无论是那一种情况极大值点一定在r的左侧。我们可令右侧边界取r。
同理,如果f(l)<f®,我们可令左侧边界取l。
定义域的缩小和l和r的取值有关。时间复杂度是log级别的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值