平摊分析--聚集法
1. 聚集法介绍
将整体操作划分成单个的原子操作,用求和的方法计算 总代价 和 平摊代价
注意:求和时运用好整体操作的规律
【栈操作】
- 问题定义:对初始为空的栈进行 push,pop 和 multipop三种操作
- 规律:
调用次数满足 pop + multipop <= push , 代价关系满足 pop + multipop <= push
最坏的总代价问题 等价于 最大压入量
- 分析:
设进行了n次操作,最大压入量为 n - 1, 总代价 2(n - 1)平摊代价为 2
【二进制计数器】
- 问题定义:从0开始的k位二进制计数器的代价分析
- 规律:
A[ 0 ]每 1 次计数改变一次
A[ 1 ]每 2 次计数改变一次
A[ k-1 ]每 2k-1次计数改变一次
- 分析
设进行了n次操作,A[ 0 ]代价为n,A[ 1 ]代价为[ n/2 ],A[ k-1 ]代价为[ n/2k-1 ],总代价为各项求和2n,平摊代价为2