第6章查找概要.ppt

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

* * * 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 散列表上的删除 当在散列表上删除一个元素时,首先是查找,查找成功情况下才能做删除。 对于拉链法解决冲突构造的散列表,其删除等价于单链表上的删除; * (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+树进行两种查找运算:一种是从最小关键码起顺序查找,另一种是根结点开始,进行随机查找。 * 6.4 散列表查找 散列是一种存储策略,散列表也叫哈希(hash)表、杂凑表,是基于散列存储策略建立的查找表。 * 6.4.1 散列表 哈希表、哈希方法、哈希函数: * 【例6-6】11个元素的查找表其关键码分别为: 18,27,1,20,22,6,10,13,41,15,25 选取关键码与元素位置间的函数为:f(key)=key mod 11 0 1 2

文档评论(0)

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

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

1亿VIP精品文档

相关文档