新数据结构与算法 第3版 教学课件 张小莉 第6章 查找.pptVIP

新数据结构与算法 第3版 教学课件 张小莉 第6章 查找.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 6.4.4 散列表上的查找 1、 查找 散列表的查找过程基本上和造表过程相同。 一些关键码可通过散列函数转换的地址直接找到,另一些关键码在散列函数得到的地址上产生了冲突,需要按处理冲突的方法进行查找。 * * * 0 1 2 3 4 5 6 7 8 9 10 11 22 47 92 16 3 7 29 8 关键码 47 7 29 11 16 92 22 8 3 散列地址 3 7 7 0 5 4 0 8 3 【例6-8】关键码集为:{47,7,29,11,16,92,22,8,3}, 设哈希表表长为11,哈希函数用Hash(key)=key mod 11,用线性探测法处理冲突,构建哈希表。 首先求得各个哈希地址: 线性探测法的平均查找长度:ASL=(5×1+3×2+1×4)/9=5/3 * 【例6-9】关键码集为 {47,7,29,11,16,92,22,8,3},用二次探测法处理冲突,构建哈希表。 0 1 2 3 4 5 6 7 8 9 10 11 22 3 47 92 16 7 29 8 二次探测法的平均查找长度 : ASL=(5×1+3×2+1×3)/9=14/9 * 查找成功的情况: ASL=(1×9+2×5)/14=29/14 0 1 2 ^ 3 4 5 6 7 8 9 ^ 10 3 47 ^ 37 92 ^ 94 50 ^ 29 7 ^ 22 11 ^ 89 ^ 16 ^ 21 ^ 8 ^ 【例6-10】关键码序列为47,7,29,11,16,92,22,8,3,50,37,89, 94,21,哈希函数为 Hash(key)=key mod 11,建散列表。 * 第三个因素:哈希表的装填因子。装填因子是散列表装满程度的标志因子,一般选择在0.65-0.85范围。由于表长是定值,与“填入表中的元素个数”成正比,所以,越大,填入表中的元素较多,产生冲突的可能性就越大;越小,填入表中的元素较少,产生冲突的可能性就越小。 实际上,散列表的平均查找长度是装填因子的函数,只是不同处理冲突的方法有不同的函数。表7-1给出几种不同处理冲突方法的平均查找长度和的关系,可供参考。 * 处理冲突的方法 平均查找长度 查找成功时 查找不成功时 线性探测法 二次探测法 与双哈希法 拉链法 * 6.4.5 散列表上的删除 当在散列表上删除一个元素时,首先是查找,查找成功情况下才能做删除。 对于拉链法解决冲突构造的散列表,其删除等价于单链表上的删除; * (4) 插入30,78,25,93得图6-21 (d)。 69 t 20 25 84 30 54 71 78 84 84 93 (d) (5) 插41又分裂,得图6-21 (e)。 30 t 20 25 41 54 71 78 84 84 93 69 (e) * (6) 7直接插入。 (7) 76插入,分裂,得图6-21 (f)。 30 69 84 78 t 7 20 25 41 54 71 76 84 93 (8) 51,66直接插入,当插入68后,需分裂,得图6-21 (g)。 (g) (f) 7 20 25 41 51 66 68 71 76 84 93 30 54 69 t 78 * (9) 53,3,79,35直接插入,到12插入时,需分裂,当中间关键码12插入父结点时,又需要分裂,则54上升为新根。 (10)15,65直接插入得图6-21 (h)。 84 7 20 25 41 51 66 68 71 76 84 93 30 54 69 t 78 12 30 54 t 3 7 35 41 51 53 69 78 15 20 25 71 76 79 84 93 65 66 68 (h) (g) * 5. B+树 B+树是应文件系统所需而产生的一种B树的变形树。一棵m阶的B+树和m阶的B树的差异在于: ⑴有n棵子树的结点中含有n个关键码; ⑵所有的叶子结点中包含了全部关键码的信息,及指向含有这些关键码记录的指针,且叶子结点本身依关键码的大小自小而大的顺序链接。 ⑶所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键码。 * 68 78 93 20 25 3 7 84 93 35 41 51 53 66 68 71 78 7 25 53 53 93 root sqt 一棵5阶二叉树 例如下图是一棵五阶的B+树,通常在B+树上有两个头指针,一个指向根结点,另一个指向关键码最小的叶子结点 。因此,可以对B+树进行两种查找

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档