第11讲-查找.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复习 静态查找 顺序查找 折半查找 1、开放定址法(开地址法) 设计思路:有冲突时就去寻找下一个空的哈希地址,只要哈希表足够大,空的哈希地址总能找到,并将数据元素存入。 具体实现: Hi=(h(k)+di) mod m ( 1≤i m ) 其中: h(k)为哈希函数 m为哈希表长度 di 为增量序列 1,2,…m-1,且di=i (1)线性探查法 含义:一旦冲突,就找附近(下一个)空地址存入。 关键码集为 {47,7,29,11,16,92,22,8,3}, 设:哈希表表长为m=11; 哈希函数为h(K)=K mod 11; 拟用线性探查法处理冲突。建哈希表如下: 解释: ① 47、7是由哈希函数得到的没有冲突的哈希地址; 0 1 2 3 4 5 6 7 8 9 10 47 7 △ ▲ △ △ 例: 29 11 16 92 22 8 3 ② h(29)=7,哈希地址有冲突,需寻找下一个空的哈希地址:由H1=(h(29)+1) mod 11=8,哈希地址8为空,因此将29存入。 ③ 另外,22、8、3同样在哈希地址上有冲突,也是由H1找到空的哈希地址的。 其中3 还连续移动了两次(二次聚集) 线性探查法的优点:只要哈希表未被填满,保证能找到一个空地址单元存放有冲突的元素; 线性探查法的缺点:可能使第i个哈希地址的同义词存入第i+1个哈希地址,这样本应存入第i+1个哈希地址的元素变成了第i+2个哈希地址的同义词,……, 因此,可能出现很多元素在相邻的哈希地址上“堆积”起来,大大降低了查找效率。 解决方案:可采用二次探查法或伪随机探查法,以改善“堆积”问题。 讨论: 仍举上例,改用二次探查法处理冲突,建表如下: 0 1 2 3 4 5 6 7 8 9 10 11 22 3 47 92 16 7 29 8 △ ▲ △ △ 注:只有3这个关键码的冲突处理与上例不同, h(3)=3,哈希地址上冲突,由 H1=(h(3)+12) mod 11=4,仍然冲突; H2=(h(3)-12) mod 11=2,找到空的哈希地址,存入。 2. 二次探查法 Hi=(h(k)±di) mod m 其中:h(k)为哈希函数 m为哈希表长度,m要求是某个4k+3的质数; di为增量序列 12,-12,22,-22,…,q2 3. 若di=伪随机序列,就称为伪随机探查法 2、链地址法(拉链法) 基本思想:将具有相同哈希地址的记录链成一个单链表,m个哈希地址就设m个单链表,然后用一个数组将m个单链表的表头指针存储起来,形成一个动态的结构。 设{ 47, 7, 29, 11, 16, 92, 22, 8, 3, 50, 37, 89 }的哈希函数为: h(K)=K mod 11, 用拉链法处理冲突,则建表如右图所示。 例: 0 1 2 3 4 5 6 7 8 9 10 22 11 89 3 47 37 92 29 7 16 50 8 10 ? ? ? ? ? ? ? ? ? ? ? 有冲突的元素可以插在表尾,也可以插在表头。 查找过程和造表过程一致。假设采用开放定址处理冲突,则查找过程为: 四、哈希表的查找及分析 对于给定值 K, 计算哈希地址 i = h(K) 若 r[i] = NULL 则查找不成功 若 r[i].key = K 则查找成功 否则 “求下一地址 Hi” ,直至 r[Hi] = NULL (查找不成功) 或 r[Hi].key = K (查找成功) 为止。 例: 已知一组关键字 (19,14,23,1,68,20,84,27,55,11,10,79) 哈希函数为H(K)=K MOD 13, 哈希表长为m=16, 用线性探查再散列处理冲突得哈希表 给定值K=38的查找过程为: H(38)=12 不空且不等于38,冲突 H1=(12+1) MOD 16=13空记录 表中不存在关键

文档评论(0)

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

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

1亿VIP精品文档

相关文档