复杂度分析---平摊分析(Amortized Analysis)

Posted stephanie-boke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复杂度分析---平摊分析(Amortized Analysis)相关的知识,希望对你有一定的参考价值。

平摊分析(Amortized Analysis)

参考链接:https://blog.csdn.net/Ying_Xu/article/details/51433497

1、聚类分析

2、记账方法

3、势能方法

技术图片

其中的公式Ci表示为执行当前操作需要的花销

push操作:势能增加1,操作花销为1,因此均摊花销为2

pop操作:势能减少1,操作花销为1,因此均摊花销为0

MULTIPop:势能减少-#pop,操作花销为#pop,因此均摊花销为0

技术图片

势能可以看做一个操作的危险程度,越高势能越高越危险,对应平摊分析为,一个操作带来了更大的开销的危险程度。

当插入完第4个数据到扩张后的表的时候,size为8,势能最小,危险程度最低为0;
当插入完第8个数据,表扩张前,势能最高危险程度最高为8,这个数据8意味着下次表扩张,需要将这8个数据重新插入一遍。

以上是关于复杂度分析---平摊分析(Amortized Analysis)的主要内容,如果未能解决你的问题,请参考以下文章

算法课笔记系列—— 平摊分析

算法分析方法之平摊分析(Amotized Analysis)

平摊分析的应用

平摊分析--聚集法

ArrayDeque 源码分析

Dubbo之LoadBalance源码分析