- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十八章平摊分析 - read
第六章 平摊分析
·平摊分析基本思想
·在平摊分析中,执行一系列数据结构操作所需要时间是通
过对执行的所有操作求平均而得出的。
·平摊分析可用来证明在一系列操作中,即使单一的操作具
有较大的代价,通过对所有操作求平均后,平均代价还是
很小的
·平摊分析与平均情况分析不同, 不牵涉到概率。
·平摊分析的方法
·聚集方法
·会计方法
·势能方法
6.1 聚集方法
6.1.1 聚集方法的原理
·首先证明n个操作构成的序列在最坏情况下总的时间T(n)。
·在最坏情况下,每个操作的平均代价就是T(n)/n。
*聚集方法为每个操作都赋予相同的平摊代价,即使序列中存
在不同类型操作时也一样。
*会计方法和势能方法对不同类型操作赋予不同的平摊代价。
6.1.2 聚集方法实例1 — 栈操作
普通栈操作分析
·普通栈操作
PUSH(S,x):将对象压入栈S;
POP(S):弹出并返回S的顶端元素。
·时间代价
·两个操作的运行时间都是O(1)
·我们可把每个操作的代价视为1
·n个PUSH和POP操作系列的总代价是n
·n个操作的实际运行时间为((n)。
新的栈操作
·操作MULTIPOP(S,k):去掉S的k个顶端对象,或当S
中包含少于k个对象时弹出整个栈。
·实现算法
输入:栈S,k
输出:返回S顶端k个对象
MULTIPOP(S,k)
1 While not STACK-EMPTY(S) and k(0 Do
2 POP(S);
3 k(k-1.
·MULTIPOP总代价
·设MULTIPOP(S,k)作用于一个包含s个对象的栈上
·实际运行时间与实际执行的POP操作数成线性关系
·只需按PUSH和POP具有代价1来分析MULTIPOP
·While循环执行的次数是从栈中弹出的对象数min(s,k)
·执行一次While循环要调用一次POP
·MULTIPOP的总代价即为min(s,k)
初始为空的栈上的n个栈操作序列的分析
·设PUSH、POP和MULTIPOP构成n个栈操作序列
·粗略分析
·序列中一次MULTIPOP操作的最坏情况代价为O(n)
(因为栈的大小至多为n)
·任意栈操作的最坏情况时间就是O(n), n个操作的总
代价就是O(n2)
(MULITPOP操作可能有O(n)个,每个代价为O(n))
·虽然这个分析是正确的,O(n2)的结论却不够准确。
·精细分析
·一个对象在每次被压入栈后至多被弹出一次
·所以在一个非空栈上调用POP的次数(包括在
MULTIPOP内的调用)至多等于PUSH的次数,
即至多为n
·对任意的n值,包含n个PUSH、POP和MULTIPOP
操作的序列的总时间为O(n)
·每个操作的平摊代价为:O(n)/n=O(1)。
*我们想再一次强调一下,虽然我们已说明了每个栈操作的
平均代价(或平均运行时间)为O(1),但没有用到任何概率
推理。实际上是给出了一列n个操作的最坏情况界O(n)。
用n来除这个总代价即可得每个操作得平均代价(或说平
摊代价)。
6.1.2 聚集方法实例2 — 二进计数器
1. 问题定义
现实一个由0开始向上计数的k位二进计数器。
输入:k位二进制变量x,初始值为0。
输出:x+1 mod 2k。
数据结构:·A[0..k-1]作为计数器,存储x
·x的最低位在A[0]中,最高位在A[k-1]中
·x =
2. 计数器加1算法
输入:A[0..k-1],存储二进制数x
输出:A[0..k-1],存储二进制数x+1 mod 2k
INCREMENT(A)
i(0
while ilength[A] and A[i]=1 Do
A[i](0;
i(i+1;
If ilength[A]
Then A[i](1
3. 初始为零的计数器上n个INCREMENT操作的分析
图1 在16次INCREMENT操作作用下,一个八位二进计数器的值从0变到16
您可能关注的文档
- 合成及天然纤维纺织品的超临界流体染色(一) - 印染.pdf
- 在饮水中典型溶解性有机氮酪氨酸氯化生成氯仿的机理分析the .pdf
- 银鲫zp3 的表达特征和卵壳zp3 蛋白的分离陈波 - 水生生物学报.pdf
- 实时荧光定量pcr(taqman)法测定外源基因的拷贝数.pdf
- 不同冻融处理对猪精子顶体膜蛋白表达的影响 - 安徽农业大学.pdf
- 以肿瘤凋亡相关蛋白和基因为靶的小分子3.pdf
- 并行化光滑分子动力学方法及其与分子动力学的耦合 - researchgate.pdf
- 电浆表面处理在生医材料上之应用.pdf
- 多肽类药物制剂研究现状ξ.pdf
- progress in study on reactive oxygen species and - 临床与病理杂志.pdf
文档评论(0)