会计法介绍
为每个操作类型分配一个平摊代价,保证在整个操作序列中平摊代价始终大于实际代价
设计思路:
需要结合数据结构的特点和算法的规律灵活设计
【栈操作】
由操作的代价规律 : push >= pop+multipop
则 2*push的代价 > 总代价
实际代价
![]()
平摊代价
![]()
设计的平摊代价满足会计法的要求,则总代价O(2n),平摊代价O(2)
【二进制计数器】
对于任何一个数位,0 ~> 1 的次数总大于等于 1~>0 的次数
设 0 ~>1的平摊代价为2,1~>0的平摊代价为0
设计的平摊代价满足会计法的要求,则总代价O(2n),平摊代价O(2)
原文:https://www.cnblogs.com/duanshuai/p/13172588.html