ImageVerifierCode 换一换
格式:PPT , 页数:42 ,大小:461KB ,
资源ID:13771427      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13771427.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(平摊分析优质PPT.ppt)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

平摊分析优质PPT.ppt

1、答案:动态表.思路:每当表溢出的时候,通过分配(用malloc或者 new)一个新的更大表使其增长。将原来表中的所有项都移动到新表中,然后释放旧表的内存。,动态表举例,1.插入2.插入,溢出,动态表举例,1.插入2.插入,溢出,动态表举例,动态表举例,1.插入2.插入,1.插入2.插入3.插入,动态表举例,溢出,1.插入2.插入3.插入,动态表举例,溢出,1.插入2.插入3.插入,动态表举例,溢出,1.插入2.插入3.插入,动态表举例,动态表举例,1.插入2.插入3.插入4.插入,动态表举例,溢出,1.插入2.插入3.插入4.插入5.插入,动态表举例,溢出,1.插入2.插入3.插入4.插入5.

2、插入,动态表举例,1.插入2.插入3.插入4.插入5.插入,动态表举例,1.插入2.插入3.插入4.插入5.插入6.插入7.插入,最坏情况分析,考虑一连串 n 个插入。指向一个插入的最坏情况时间是(n).因此,n 个插入的最坏运行时间是 n(n)=(n2).错误!实际上,n 个插入的最坏情况费用进行是(n)(n2).我们看看为什么是这样:,令 ci=第 i 个插入的代价,如果 i 1 刚好是 2的幂,其他.,严格分析,严格分析,令 ci=第 i 个插入的代价,如果 i 1 刚好是 2的幂,其他.,n 个插入的费用.,因此,每个动态表操作的平均费用是(n)/n=(1).,严格分析(续),平摊分析

3、,平摊分析是一种分析方法,证明在一系列操作中,每个操作的平均代价很小,即使在这个系列中一个操作的代价比较大。虽然我们进行平均,但是,其中并不涉及概率!平摊分析保证在最坏情况下每个操作的平均性能。,平摊分析的类型,三种常用的平摊arguments:聚集 法,记账 法,势能 法.我们刚刚看到的是聚集分析。聚集法虽然简单,但是不如其他两种方法精确。特别是,记账法和势能法可以给每个操作分配特定的平摊代价。,记账法,给第 i 个操作虚构一个平摊代价 i,1单位的工作付$1(比如时间).执行操作his fee is consumed to perform the operation.任何当时没有消费的余额

4、存在银行 准备给以后的操作使用。银行的余额不能为负值!我们必须要保证对所有的 n,这样,总的平摊代价提供了总的实际代价的上界。,例子:,溢出,动态表的记账分析,假设 给第 i 个插入操作平摊费用为 i=$3。$1 付给这次插入操作$2 给以后表倍增预存当表倍增的时候,$1 付给移动一个最近加入的项,同时$1 付给移动一个旧的项.,动态表的记账分析,假设 给第 i 个插入操作平摊费用为 i=$3。$1 付给这次插入操作$2 给以后表倍增预存当表倍增的时候,$1 付给移动一个最近的项,同时$1 付给移动一个旧的项.,举例:,溢出,例子:,动态表的记账分析,假设 给第 i 个插入操作平摊费用为 i=

5、$3。$1 付给这次插入操作$2 给以后表倍增预存当表倍增的时候,$1 付给移动一个最近的项,同时$1 付给移动一个旧的项.,记账分析(续),键的不变量:存款余额不会低于 0.这样,平摊代价的和给真实代价提供了一个上界。,i为分配的平摊代价(虚拟),另外,banki=banki-1+i-ci*第一个操作的代价仅仅是$2,不是$3.,令 ci=第 i 个插入的代价,如果 i 1 刚好是 2的幂,其他.,势能法,思路:将银行帐号视为动态集合的势能。,框架:开始时,初始的数据结构为 D0.操作 i 将 Di1 转换为 Di.操作 i 的代价为 ci.定义 势能函数:Di R,使得(D0)=0 并且对

6、所有的 i,(Di)0.平摊代价 i 和相关的 定义为 i=ci+(Di)(Di1).,理解势能,potential difference i,如果 i 0,那么 i ci.操作 i stores work in the data structure for later use.如果 i 0,那么 i ci.数据结构将存储的工作取出付操作i的代价。,The amortized costs bound the true costs,n 个操作的平摊代价之和为,两边求和。,The amortized costs bound the true costs,The series telescopes.

7、,n 个操作的平摊代价之和为,The amortized costs bound the true costs,n 个操作的平摊代价之和为,表倍增的势能分析,定义在i第个插入后表的势能为(假设,Note:,记账法),平摊代价分析,第i 个插入的平摊代价是,平摊代价分析,第i 个插入的平摊代价是,如果 i 1刚好是 2的幂,其他;,平摊代价计算,第i 个插入的平摊代价是,如果 i 1刚好是 2的幂,其他;,如果 i 1刚好是 2的幂,其他;,计算,情况 1:i 1 刚好为 2的幂。,情况 1:,计算,情况 2:i 1 不是 2的幂。,情况 2:,计算,因此,n 插入最坏情况的代价为(n)。,练习:修正这个分析中的错误,证明第一次插入的平摊代价仅仅为 2.,计算,情况 2:,因此,n 插入最坏情况的代价为(n)。,结论,平摊代价给数据结构性能提供了清晰的抽象。当需要进行平摊分析的时候,任何方法都可以使用,但是每种方法都有特定的情况,最精确和简单。Different schemes may work for assigning amortized costs in the accounting method,or potentials in the potential method,有时产生不同的边界。yielding radically different bounds.,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1