当前位置: 首页 > news >正文

《算法导论》Ch.17_学习笔记

<摊还分析>

摊还分析:求数据结构的一个操作序列中所执行的所有操作的平均时间来评价操作的代价。

17.1聚合分析

聚合分析中,对所有n,一个n个操作的序列最坏情况下花费的总时间为T(n)。因此在最坏情况下,每个操作的平均代价,或摊还代价为T(n)/n。

17.2核算法

对不同操作赋予不同费用,该费用称为“摊还代价”。赋予某些操作的费用可能多于或少于其实际代价。当一个操作的摊还代价超出其实际代价时,将差额存入数据结构中的特定对象,存入的差额称为“信用”。对于后续摊还代价小于实际代价的情况,信用可以用来支付差额。

17.3势能法

势能法摊还分析将预付代价表示为“势能”,简称为“势”,将势能释放出来即可用来支付未来操作的代价。

势能法工作方式如下:

对一个初始数据结构D_{0}执行n个操作。对每个i=1,2,\cdots ,n,令c_{i}为第i个操作的实际代价,另D_{i}为在数据结构上执行第i个操作得到的结果数据结构。势函数\Phi将每个数据结构映射到一个实数\Phi (D_{i}),此值即为关联到数据结构D_{i}的势。第i个操作的摊还代价\hat{c_{i}}用势函数定义为:

\hat{c_{i}}=c_{i}+\Phi (D_{i})-\Phi (D_{i-1})

每个操作的摊还代价等于其实际代价加上此操作引起的势能变化,n个操作的总摊还代价为

\sum_{i=1}^{n}\hat{c_{i}}=\sum_{i=1}^{n}(c_{i}+\Phi (D_{i})-\Phi (D_{i-1}))=\sum_{i=1}^{n}c_{i}+\Phi (D_{n})-\Phi (D_{0})

17.4 动态表

非空表T的装载因子\alpha (T)定义为表中存储的数据项的数量除以表的规模(槽的数量)。

赋予空表(没有数据项)的规模为0,其装载因子定义为1。如果一个动态表的装载因子被限定在一个常量之下,则其空闲空间相对于总空间的比例永远不会超过一个常数。

17.4.1 表扩张

扩张表的前提条件:

  • 表的存储空间是一个槽的数组。
  • 所有槽已被使用,装载因子为1。
  • 提供内存管理系统,根据要求分配和释放内存块。

对此,常用的分配新表的启发式策略是:为新表分配2倍于旧表的槽。

n个操作总运行时间的上界O(n^{2}),单一操作的摊还代价至多为3:将它插入表中,当表扩张时移动它,当表扩张时移动另一个已经移动过一次的数据项。—具体可以通过核算法、势能法来具体分析。

17.4.2 表扩张和收缩

当表中的数据项下降得太少时,分配一个更小得表,然后将数据项从旧表复制到新表中。释放旧表占用得内存空间,将其归还内存管理系统。理想情况下,保持两个性质:

  • 动态表的装载因子有一个正的常数的下界。
  • 一个表操作的摊还代价有一个常数上界。

*由于每个操作的摊还代价的上界是一个常数,在一个动态表上执行任意n个操作的实际运行时间是O(n)

相关文章:

  • L1-6 大勾股定理
  • CST1018.基于Spring Boot+Vue滑雪场管理系统
  • 经典SQL练习题50道
  • 【数字图像处理】机器视觉基础
  • 分布式日志治理:Log4j2自定义Appender写日志到RocketMQ
  • YOLO V8的​​Anchor-Free​​、​​解耦头(Decoupled Head)、损失函数定义(含​​Varifocal Loss)
  • android display 笔记(十一)surfaceflinger 如何将图层传到lcd驱动的呢?
  • 指针入门C++
  • wkhtmltopdf 实现批量对网页转为图片的好工具,快速实现大量卡片制作
  • 数学建模学习资料免费分享:历年赛题与优秀论文、算法课程、数学软件等
  • Java基础自学(1):一个简单的Java程序
  • 如何使用PyCharm自动化测试
  • 医药采购系统平台第4天03:实现根据用户的角色显示不同用户的权限菜单编写拦截器实现权限拦截模块的开发流程和测试流程小节
  • FileReader 详细解析与记忆方法
  • DataEase同比环比
  • 微信小程序实战案例 - 餐馆点餐系统 阶段 2 – 购物车
  • 嵌入式常见概念的介绍
  • C++ 重构muduo网络库
  • FPGA 37 ,FPGA千兆以太网设计实战:RGMII接口时序实现全解析( RGMII接口时序设计,RGMII~GMII,GMII~RGMII 接口转换 )
  • 微信小程序跳4
  • 独家 |《苏州河》上海上演,编剧海飞:上海的风能吹透我
  • 在本轮印巴冲突的舆论场上也胜印度一筹,巴基斯坦靠什么?
  • 习近平向多哥新任领导人致贺电
  • 经常口干口渴的人,要当心这些病
  • 乌拉圭前总统何塞·穆希卡去世
  • 城市轨道交通安全、内河港区布局规划、扎实做好防汛工作……今天的上海市政府常务会议研究了这些重要事项