形式陈述
摊还分析给一串操作的总成本作确定性上界,再把它分配到单次操作;它不对输入分布取期望。三种等价常用方法是聚合法、记账法和势能法。势能法选取状态势能
于是
若
直觉
便宜操作提前“存钱”或积累势能,支付偶尔昂贵的重组;保证针对整段任意操作序列,而不是假设昂贵情况概率很低。
例子与边界
动态数组容量满时翻倍:某次扩容复制
推论与应用
摊还分析用于动态数组、并查集、伸展树、Fibonacci 堆和垃圾回收。选择势能函数实质上是在寻找对未来必要工作的可守恒记账。
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,Ch. 16, aggregate, accounting, and potential methods。
- Robert Sedgewick and Kevin Wayne, Algorithms, 4th ed., Addison-Wesley, 2011,§1.4, amortized cost in dynamic data structures。