NK数据结构09.pdf

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NK数据结构09

数据结构与程序设计 南开大学软件学院 2002-2003李耀国 1 Chapter 9 Priority Queues ?9.1 Introduction ?9.2 Linear Lists ?9.3 Heaps ?9.4 Leftist Trees ?9.5 Application 2 Chapter 9 Priority Queues ? 与第6章FIFO结构的队列不同,优先队列中 元素出队列的顺序由元素的优先级决定。从 优先队列中删除元素是根据优先权高或低的 次序,而不是元素进入队列的次序。 ? 可以利用堆数据结构来高效地实现优先队 列。堆是一棵完全二叉树,可用公式化描述 方法来高效存储完全二叉树。在高度和重量 上取得平衡的左高树很适合于用来实现优先 队列。本章的内容涵盖了堆和左高树。 3 Chapter 9 Priority Queues ? 在本章的应用部分,利用堆开发了一种复杂 性为O(nlogn)的排序算法,称为堆排序。第 3章介绍的箱子排序和基数排序算法的运行时 间为Θ(n),但算法中元素的取值必须在合适 的范围内。堆排序是迄今为止所讨论的第一 2 种复杂性优于O(n )的通用排序算法。 ? 从渐进复杂性的观点来看,堆排序是一种优 化的排序算法,因为可以证明,任何通用的 排序算法都是通过成对比较元素来获得Ω (nlogn)复杂性的。 4 Chapter 9 Priority Queues ? 本节所考察的另外两个应用是机器调度和生 成霍夫曼编码。机器调度问题属于NP-复杂问 题,对于这类问题不存在具有多项式时间复 杂性的算法。而第2章提到的大量事实表明, 只有具有多项式时间复杂性的算法才是可行 的,因此,经常利用近似算法或启发式算法 来解决NP-完全问题,这些算法能在合理的时 间内完成,但并不能保证找到最佳结果。对 于机器调度应用,利用堆数据结构获得了有 效解决机器调度问题的近似算法。 5 9.1 Introduction ? 优先队列(priority queue)是0个或多个元素的集合,每 个元素都有一个优先权或值,对优先队列执行的操作有 1)查找; 2)插入一个新元素; 3)删除。 ? 在最小优先队列(min priority queue)中,查找操作用来 搜索优先权最小的元素,删除操作用来删除该元素;对于最 大优先队列(max priority queue),查找操作用来搜索优 先权最大的元素,删除操作用来删除该元素。 ? 优先权队列中的元素可以有相同的优先权,查找与删除操作 可根据任意优先权进行。 6 9.1 Introduction ? ADT9-1最大优先队列的抽象数据类型描述 抽象数据类型MaxPriorityQueue{ 实例 有限的元素

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档