疯子的算法总结12--倍增

本文以马里奥救公主的故事生动地介绍了倍增策略,一种在搜索算法中高效的技巧。通过对比不同的策略,展示了倍增策略如何在较少的操作次数下实现目标。进一步解释了在长距离情况下,倍增策略的优势,并引入了ST表这一基础算法,用于解决静态RMQ问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近发现倍增讲的很少,这可以理解为二分新姿势!

我们设想一个背景,公主被邪恶的王八抓走了,马里奥大叔这次要去救公主了,如果他到的不及时公主就要被杀死了,他能抱得美人归吗?马里奥有一种神奇的能力,它可以在一秒钟之内走任意距离!已经知道了王八城堡很高,在哪里都能看见!

憨批马里奥:地球是圆的,我向相反的方向走,额。。。走多少米呢?不知道唉,于是他走了N圈地球后公主被杀了。

淳朴马里奥:我每次直走一米,我一定不会错过,那我每次走两米,也不会错过太多,那要是我一开始走三步,然后走一步也不会超过太多,到底怎么走呢?只能摸索的前进了,过了倒回来,于是公主也被杀了。

倍增马里奥:我第一次走1米,第二次我走2米,第三次我走4米。。。。。。。第N我走2^(n-1)米,要是我走过了那么我会在少走一半,要是在多走,我会回去少走一半,那么 次方式 的增长所需要时间绝对是少的,于是他拯救公主成功了,怎么成功的呢?我们看看他的策略:

虽然在这里我们还是觉得他的操作次数太多了,但是当这个距离很长的时候,按指数倍增长后 的次数不会多很多,就像1000最大也不过是9+9步,其实没这么多10步多一点,这时候倍增的好处就体现出来了。

关于倍增比较基础的算法就是ST表,静态RMQ算法:戳这里

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值