浅谈三分算法

本文探讨了三分算法,澄清了与二分法的常见误解,并通过一个二次函数求最小值的例子,详细解释了三分法的实现过程。在解决单谷函数最值问题时,三分法能有效避免二分法的困境。文中还提供了三分法的伪代码模板,适合初学者掌握和应用。
摘要由CSDN通过智能技术生成

博客园同步

前置知识:

二分,函数(数学领域)。

二分

首先二分的能解决的,仅仅是 单调函数 求极值。什么叫做单调函数?即 y y y x x x 单调不减 或 单调不增 均可用二分解决。如图:

在这里插入图片描述

上图是函数 y = 2 3 x y=\frac{2}{3} x y=32x,显然可以用二分在函数上进行解决问题。

实际上二分的解决领域仅仅是 y = k x y=kx y=kx 类型的函数,二次及以上都不行了,反比例函数也不行了。

三分

辟谣

请不要以为我在开玩笑!确实有这样一个算法。

很多初学者会这样认为:

二分就是在 [ l , r ] [l,r] [l,r] 找到中点 mid = ⌊ l + r 2 ⌋ \text{mid} = \lfloor \frac{l+r}{2} \rfloor mid=2l+r,把搜索范围每次减小一半。
三分就是在 [ l , r ] [l,r] [l,r] 找到三等分点 m1 = ⌊ l + r 3 ⌋ , m2 = ⌊ 2 ( l + r ) 3 ⌋ \text{m1} = \lfloor \frac{l+r}{3} \rfloor , \text{m2} = \lfloor \frac{2(l+r)}{3} \rfloor m1=3l+r,m2=32(l+r),把搜索范围每次变为 1 3 \frac{1}{3} 31
时间复杂度都是 log ⁡ \log log 级别的(只不过 log ⁡ 2 \log_2

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值