不动点问题的O(logn)算法

本文通过分析T[i]与下标i的关系,得出当T[i]大于i时可放弃i后的解空间,反之则放弃i前的解空间。从而提出了一种使用二分法解决问题的有效思路。

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

看到logn的复杂度就知道这货是用二分做的。
上午那个分析不太直观。重写。

考察一下某个T[i]和它的下标i的变化关系。
当 T[i] > i 的时候,我们可以想象,在T[i]后面的那些元素,譬如说,某个T[k],T[k] 与 k 的距离|T[k] - k|绝对不会小于|T[i] - i|,因为i的增长率是每向右一个数就增加1,而T[i]就算以最慢的速度增长(也是每次增加1),i也没办法追上T[i]
所以,当我们发现 T[i] > i的时候,马上可以放弃 i 后面的解空间。
当T[i] < i 的时候,类似的分析方法,可以得到结论:当我们发现 T[i] < i的时候,马上可以放弃 i 前面的解空间。


二分的思路就出来了。

 

转载于:https://my.oschina.net/mustang/blog/58017

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值