平摊分析--聚集法

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

 

猜你喜欢

转载自www.cnblogs.com/duanshuai/p/13172521.html