第 6章平 摊 分 析( Amortized analysis) 基本思想 平摊分析的方法 聚集方法 会计方法 势能方法 聚集分析法-原理 平摊分析实例1-栈操作 普通栈操作 PUSH(S,x):将对象压入栈S POP(S):弹出并返回S的顶端元素 时间代价: ·两个操作的运行时间都是O(1) ·我们可把每个操作的代价视为1 ·n个PUSH和POP操作系列的总代价是n ·n个操作的实际运行时间为?(n) 平摊分析实例1-栈操作 新的栈操作 操作MULTIPOP(S,k): 去掉S的k个顶端对象 或当S中包含少于k个对象时弹出整个栈 平摊分析实例1-栈操作 初始为空的栈上的n个栈操作序列的分析 由PUSH、POP和MULTIPOP长为n的栈操作序列 平摊分析实例2-二进计数器 1. 问题定义 ?实现一个由0开始向上计数的k位二进计数器。 输入:k位二进制变量x,初始值为0。 输出:x+1 mod 2k。 数据结构: A[0..k-1]作为计数器,存储x x的最低位在A[0]中,最高位在A[k-1]中 x = 平摊分析实例2-二进计数器 2. 计数器加1算法 输入:A[0..k-1],存储二进制数x 输出:A[0..k-1],存储二进制数x+1 mod 2k 平摊分析实例2-二进计数器 3.初始为零的计数器上n个INCREMENT操作的分析 会计方法-基本原理 一个操作序列中有不同类型的操作 不同类型的操作的操作代价各不相同 于是我们为每种操作分配不同的平摊代价 会计方法实例 1 — 栈操作 会计方法实例 1 — 栈操作 3. 栈操作序列代价分析 会计方法实例 2 -二进计数器 1. 计数器加1算法 输入:A[0..k-1],存储二进制数x 输出:A[0..k-1],存储二进制数x+1 mod 2k INCREMENT(A) 1????? i?0 2????? while i
三种平摊分析的方法分别为_第6讲 平摊分析(Amortizedanalysis).ppt
最新推荐文章于 2021-11-30 21:57:58 发布