网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构课程讲义9.pptVIP

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程讲义9ppt课件

§1 线性查找 这也是线性表的基本运算之一。通常称为检索、查询等。 §1 线性查找 1.1 顺序检索 基本思想: 从线性表的一端开始,逐个地将待查找元素的关键字与每个元素的关键字进行比较,若找到,则返回1,否则返回0。 该算法的时间复杂度为O(n). §1 线性查找 顺序查找采用从头至尾逐个比较 最快O(1) 最慢O(n) 查找成功的等概率平均时间复杂性 O((n+1)/2) 1/n(1+2+3+······+n)=(n+1)/2 查找失败O(n+1) 查找的等概率平均时间复杂性 O(3(n+1)/4) 查找成功失败各半 1/2n((1+2+······+n)+n(n+1))=3(n+1)/4 §1 线性查找 1.2 二分查找 亦称折半查找,是基于提高查找速度的一种方法。检索时要求元素是排序的。 基本思想: 每次将待查找元素的关键字与已排序元素序列的中间点元素进行比较,如相等,则返回1,否则修改高点或低点,重新进行查找比较。 该算法的时间复杂度为O(n). 这是有序表的查找查找 对已排序的查找结构先确定中点,比较待查关 键字与中点关键字的大小,反复直到成功。 求n个数据折半查找的等概率成功查找的平均时 间复杂性 1 2 3 4 5 6 7 8 9 10 n个元素的折半查找 2k-1≤n2k+1-1 查找成功平均概率时间复杂性 介于 log2(2k)-1 和 log2(2k+1)-1 之间 即 k-1 和 k 之间 k=[log2(n+1)] n个元素的折半查找成功平均概率时间复杂性 log2(n+1)-1/2 §1 线性查找 1.3 分块查找 亦称索引顺序查找。也是基于提高查找速度的一种方法。检索时要求元素构成的块间是排序的,而块内是未排好序的。 基本思想: 将所有元素按关键字值划分成若干块,块之间是排序的,而块内暂时是无序的。查找时候,首先折半查找确定元素所在的块,然后再在块内进行顺序查找即可比较。 3、索引顺序查找 分块有序 后一子表中的关键字都大于前一子表中的关键字 索引顺序表的查找 查找 关键字key=38 1. 先检索索引表 确定子表位置 2. 再在子表中查找 分块查找成功的平均概率时间复杂性 索引表查找时间+子表查找时间 设索引表长为s,查找表长为n,被平均分成s块, 每块长n/s, 索引表平均查找时间 (s+1)/2 子表平均查找时间 (n/s+1)/2 ?(s+1)+ ?(n/s+1)= ?(s+n/s)+1 当 s=√n 时 有最小值 √n +1 当索引顺序表已经排序时,子块查找可以用折半查找。 平均查找时间: (s+1)/2 +log2(1+n/s)-1/2 = log2(1+n/s)+s/2 索引也用折半查找,平均查找时间 log2(s+1)-1/2 +log2(1+n/s)-1/2 = log2(s+1)(1+n/s)-1 当s= √n 时 2 log2(√n +1)-1 §2 树形结构的查找 2.1 二叉排序树及其查找过程 二叉树BT是二叉排序树,只要BT是满足如下的条件: (1)若BT的左子树非空,则其左子树上所有结点的值均小于其根结点的值;(2)若其右子树上所有结点的值均大于其根结点的值;(3)其左右子树均为二叉排序树。 对二叉排序树的中序遍历的结果就是一个升序序列。 二叉排序树又称为二叉查找树。 于是,只要将元素序列组织成二叉排序树,在进行查找时,让待查找元素与根结点值进行比较,若相等,则查找成功,否则,如果比根结点小,则只需要在左子树中查找即可;如果比根结点大,则只需要在右子树中

文档评论(0)

118books + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档