各种均摊

有关数学的均摊

比较trivial。但也不是那么trivial。

大概是观察到有那么一个东西在操作中持续变小,然后使用势能分析发现复杂度是正确的。

大概率会有一部分是打暴力,这就是均摊(

颜色段均摊

ODT珂朵莉树/颜色段均摊。

ODT总结

很好的ODT。

势能分析

强而有力的分析复杂度手段。

首先需要明白的一点是,这里分析的都是复杂度上界,分析的好与坏关系着上界的紧与松,好好分析一下或许会发现复杂度还是挺低的。

与之类似的有记账分析,先来谈谈这个。

记账分析是给当前的复杂度较低的操作提前支付一部分费用,之后进行复杂度较高的操作时我们认为使用了提前支付的费用。

以对栈的操作为例,每次push,或者pop,或者连续popk次。

我们可以在每次push时,认为费用是1,并且提前支付1的费用。之后pop可以认为使用了提前支付的费用。popk次看上去是O(k)的,但是也可以与pop同样分析。

于是总复杂度是O(n)的,均摊每次操作O(1)

这个的难点在于提前支付的费用需要去猜测调整,以得到一个合适的上界。

而势能分析就是给每个状态设置一个势能,记作ϕ(S)

然后设每次操作的复杂度为ci,又记c^i=ci+ϕ(S)ϕ(S)S表示操作后的状态。

那么c^i=ci+ϕ(Sn)ϕ(S0)

我们设置ϕ(S)时,只要满足i,ϕ(Si)ϕ(S0),那么上面那坨式子分析出来的就是一个上界,每次的c^i就是均摊下来的单次代价。

posted @   RandomShuffle  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示