第5章数据结构2.ppt

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

* 大学计算机基础 * 堆排序 堆排序是对简单选择排序的改进,在每一次选择最小(最大)元素的同时为以后的选择准备了条件。 堆排序的主要思想是: 将长度为n的无序序列调整成堆; 将堆中的根结点(最大的元素)与最后一个结点交换位置; 对剩下的前n-1个结点组成的子序列继续执行①②两步,直到子序列为空。 * 大学计算机基础 * 堆排序过程示意图: 35 15 17 46 28 46 15 17 35 28 15 46 17 35 28 35 46 17 15 28 17 46 35 15 28 28 46 35 15 17 15 46 35 28 17 17 46 35 28 15 15 46 35 28 17 调整为堆 排序 排序 排序 排序 调整为堆 调整为堆 调整为堆 * 大学计算机基础 * 各种排序方法时间、空间复杂度对比 排序方法 时间复杂度 空间复杂度 复杂性 平均情况 最坏情况 最好情况 直接插入排序 O(n2) O(n2) O(n) O(1) 简单 冒泡排序 O(n2) O(n2) O(n) O(1) 简单 希尔排序 O(nlog2n) O(nlog2n) O(1) 较复杂 快速排序 O(nlog2n) O(n2) O(nlog2n) O(nlog2n) 较复杂 直接选择排序 O(n2) O(n2) O(n2) O(1) 简单 堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) 较复杂 * 大学计算机基础 * 3. 二叉树的存储结构 二叉树通常有两种存储方式:顺序存储结构和链式存储结构,由于顺序存储结构局限性较大,而且空间浪费严重,所以一般采用的是链式存储结构,也称二叉链表。 与线性表类似,二叉链表中的每个存储结点也是由数据域和指针域组成。 L(i) V(i) R(i) 存储序号 左指针域 数据域 右指针域 i * 大学计算机基础 * A F E D C B ∧ D A B ∧ C ∧ ∧ E ∧ ∧ F ∧ t (a) 二叉树 (b) 二叉链表的逻辑状态 * 大学计算机基础 * 4. 二叉树的遍历 二叉树的遍历是指沿某条路径不重复地访问二叉树中的所有结点。这里的访问是指对结点进行某种处理,如读、写、改等。 二叉树遍历过程中涉及访问根结点、遍历左子树和遍历右子树3种操作。根据对结点访问先后的不同,可以将二叉树的遍历分为前序遍历、中序遍历和后序遍历3种类型。 * 大学计算机基础 * 前序遍历(DLR) 前序遍历是一个递归过程,若二叉树为空,则结束返回,对于非空的二叉树,其遍历规则如下: 访问根结点; 前序遍历左子树; 前序遍历右子树。 右图二叉树的前序遍历结果 为:ABMWFIR A W I M F B R * 大学计算机基础 * 中序遍历(LDR) 中序遍历也是一个递归过程,若二叉树为空,则结束返回,对于非空的二叉树,其遍历规则如下: 中序遍历左子树; 访问根结点; 中序遍历右子树。 右图二叉树的中序遍历结果 为:MBWAIRF A W I M F B R * 大学计算机基础 * 后序遍历(LRD) 后序遍历也是一个递归过程,若二叉树为空,则结束返回,对于非空的二叉树,其遍历规则如下: 后序遍历左子树; 后序遍历右子树; 访问根结点。 右图二叉树的中序遍历结果 为:MWBRIFA A W I M F B R * 大学计算机基础 * 练习题 1、深度为9的二叉树最多有多少个结点? 答案:29-1=511个 2、若完全二叉树具有85个结点,则它的非叶子结点个数是多少? 答案:42个。 * 大学计算机基础 * 查找就是指在某种数据结构中找到某个指定元素的过程。若从数据结构中找到了指定的元素,则称查找成功,否则称为查找失败。 通常,数据结构不同,采用的查找方法也不一样。由于查找的主要操作是元素的比较,所以通常把查找过程中元素的比较次数作为衡量一个查找算法效率高低的标准。 顺序查找 二分查找 §5.6 查找 * 大学计算机基础 * 1. 顺序查找 顺序查找是线性表的最简单的查找方法。 顺序查找的基本方法是:从线性表的一端开始依次扫描每个元素,与指定元素进行比较,如果相等,则查找成功,给出元素在表中的位置,如果全部元素扫描完后,仍然没有找到与指定元素相等的,则查找失败。 优点:算法简单。缺点:查找效率比较低。 顺序查找长度为n的线性表,平均情况下要做(n+1)/2次比较 ,最坏情况下要做n次比较。 有

文档评论(0)

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

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

1亿VIP精品文档

相关文档