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

数据结构13-14查找.ppt

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

内 容 安 排 数据结构课程的内容 第9章 查找 9.1 基本概念 讨论: (4)如何评估查找方法的优劣? 9.2 静态查找表 一、顺序查找( Linear search,又称线性查找 ) (2)算法的实现: 讨论① 查不到怎么办? 二、折半查找(又称二分查找或对分查找) 折半查找举例: 讨论① 若关键字不在表中,怎样得知并及时停止查找? 请注意:ASL的含义是“平均每个数据的查找时间”,而前式是n个数据查找时间的总和,所以: 再用查找二叉树/判定树来分析ASL(参见教材P220) 三、分块查找(索引顺序查找) 分块查找过程举例: 查找效率ASL分析: 四、静态树表的查找 9.3 动态查找表 一、二叉排序树的定义 将线性表构造成二叉排序树的优点: 讨论1:二叉排序树的查找插入算法如何实现? 讨论2:二叉排序树的删除操作如何实现? 难点:*p有两棵子树时,如何进行删除操作? 例:请从下面的二叉排序树中删除结点P。 三、二叉排序树的查找分析 最好情况:与折半查找中的判定树相同(即形态比较均衡) 四、平衡二叉树(自学) 9.4 哈希查找表 一、哈希表的概念 例2 : Hash查找法 冲突现象举例: 在哈希查找方法中,冲突是不可能避免的,只能尽可能减少。 二、哈希函数的构造方法 1、直接定址法 2、除留余数法 4、数字分析法 5、平方取中法 7、随机数法 三、冲突处理方法 1、开放定址法(开地址法) 例: 讨论: 2. 二次探测法 2、链地址法(拉链法) 3、再哈希法(双哈希函数法) 四、哈希表的查找及分析 讨论: 本章小结 作业 3)对有 n 个关键字的二叉排序树的平均查找长度: 设每种树态出现概率相 同 ,查找每个关键字也是等概率的。 则ASL求解过程可推导,详见教材P232。 树的深度为:?log 2n ? +1 ; ASL=log 2(n+1) –1 结论:二叉排序树的 习题5 作业 平衡二叉树又称AVL树,它是具有如下性质的 二叉树: 为了方便起见,给每个结点附加一个数字,给 出该结点左子树与右子树的高度差。这个数字 称为结点的平衡因子balance。这样,可以得到 AVL树的其它性质: 即|左子树深度-右子树深度|≤ 1 左、右子树是平衡二叉树; 所有结点的左、右子树深度之差的绝对值≤ 1 一、哈希表的概念 二、哈希函数的构造方法 三、冲突处理方法 四、哈希表的查找及分析 哈希表:即散列存储结构。 散列法存储的基本思想:建立关键码字与其存储位置的对应关系,或者说,由关键码的值决定数据的存储地址。 优点:查找速度极快(O(1)),查找效率与元素个数n无关! 例1:若将学生信息按如下方式存入计算机,如: 将2001011810201的所有信息存入V[01]单元; 将2001011810202的所有信息存入V[02]单元; …… 将2001011810231的所有信息存入V[31]单元。 欲查找学号为2001011810216的信息,便可直接访问V[16]! 有数据元素序列(14,23,39,9,25,11),若规定每个元素k的存储地址H(k)=k,请画出存储结构图。 解:根据散列函数H(k)=k ,可知元素14应当存入地址为14的单元,元素23应当存入地址为23的单元,……, 对应散列存储表(哈希表)如下: 讨论:如何进行散列查找? 根据存储时用到的散列函数H(k)表达式,迅即可查到结果! 例如,查找key=9,则访问H(9)=9号地址,若内容为9则成功; 若查不到,应当设法返回一个特殊值,例如空指针或空记录。 … 14 … 11 … 9 … 内容 地址 … 39 … 25 24 23 14 11 9 23 25 39 明显缺点:空间效率低 如何解决? H(k)称为散列函数 选取某个函数,依该函数按关键字计算元素的存储位置并按此存放;查找时也由同一个函数对给定值k计算地址,将k与地址中内容进行比较,确定查找是否成功。 通常关键码的集合比哈希地址集合大得多,因而经过哈希函数变换后,可能将不同的关键码映射到同一个哈希地址上,这种现象称为冲突。 哈希方法(杂凑法) 哈希函数(杂凑函数) 哈希表 (杂凑表) 冲 突 哈希方法中使用的转换函数称为哈希函数(杂凑函数) 按上述思想构造的表称为哈希表(杂凑表) 若干术语 有6个元素的关键码分别为:(14,23,39,9,25,11)。 选取关键码与元素位置间的函数为H(k)=k mod 7 通过哈希函数对6个元素建立哈希表: 25 39 23 9 14 6个元素用7个 地址应该足够! H(14)=14%7=0 11 H(25)=25%7=4 H(11)=11%7=4 有冲突! 0

文档评论(0)

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

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

1亿VIP精品文档

相关文档