- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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空记录 表中不存在关键
您可能关注的文档
- 第10节 输入、输出流.ppt
- 第10节 数据库技术.ppt
- 第10节 虚拟内存.pdf
- 第10节 装配基础.ppt
- 第10节(第12课).ppt
- CARSAR 基本输入课件.ppt
- 第10节_Visual_Basic的数据访问方法.ppt
- casio_dt930快捷使用手册教材.ppt
- 第10节_管家婆财务.ppt
- cass 8.0 用户手册1.9解析.doc
- 《 即兴发言中语病口译策略研究》范文.docx
- 《 乳酸菌胞外多糖-氧化石墨烯纳米佐剂的构建及免疫效果研究》范文.docx
- 《 MicroRNA调控下的RNAi途径关键基因及NBS-LRR类抗病基因在SMV侵染大豆中的作用研究》范文.docx
- 《 聚乙二醇基复合相变材料的制备以及相变性能的研究》.docx
- 《 葡125井区调驱配方优化及数值模拟研究》.docx
- 《 昌恒煤矿F9断层防隔水煤柱留设研究》范文.docx
- 《 危险源探测与救援机器人机构设计与运动研究》.docx
- 《 大数据视角下公司成本信息化管理模式研究》范文.docx
- 《 快递企业综合评价研究》范文.docx
- 《 内蒙古自治区草原生态保护补助奖励政策实施研究》范文.docx
文档评论(0)