参考博客:
摊还分析/平摊分析(Amortized Analysis):从白痴到入门_那我就换个名字吧的博客-CSDN博客_摊还分析
摊还分析(1)——算法导论(23) - 学数学的程序猿 - 博客园
白话笔记:
三种方法:
1、聚合分析
算出整个过程的操作数总和,求平均(需要点数学计算)
2、核算法
对需要的操作进行“配对”,如操作A和操作B配对,执行操作A的时候就把操作B的费用支付了,执行操作B是不再支付。例如栈操作里面的pop和push配对,二进制操作中的置1和置0配对。(需要找到配对关系)
3、势能法
取一个中间变化过程,根据“能量守恒”来做等式:
每个操作的摊还代价为其实际代价与其引起的势能变化的和,总摊还代价为总实际代价的一个上界。(势能计算方法需要自定义)
总的来说,第一种方法直接算就行了,数学公式计算就好了,第二第三中方法需要在思路上有一些转换,算是一些小技巧吧。
(仅仅是学习笔记,可能有理解错误的地方,望批评指正。)