- 1、本文档共85页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构之检索
* * * * * * * * * * * * * * * * * * * * * * * 检索 */85 算法分析 设散列表的装填因子为 ? = n / (s*m),其中 n 是表中已有的表项个数,s 是每个桶中最多可容纳表项个数,m 是表中的桶数。 可用 ? 表明散列表的装满程度。? 越大,表中表项数越多,表装得越满,发生冲突可能性越大。 通过对线性探查法的分析可知,为搜索一个关键码所需进行的探查次数的期望值 P 大约是 (2-?)/(2-2?)。虽然平均探查次数较小,但在最坏情况下的探查次数会相当大。 检索 */85 (2) 二次探查法 (quadratic probing) 为改善“堆积”问题,减少为完成搜索所需的平均探查次数,可使用二次探查法。 通过某一个散列函数对表项的关键码 x 进行计算,得到桶号,它是一个非负整数。 H0 = hash(x) 二次探查法在表中寻找“下一个”空桶的公式为: Hi = (H0 + i 2 ) % m, Hi = (H0 - i 2 ) % m, i = 1, 2, …, (m-1)/2 式中的 m 是表的大小,它应是一个值为 4k+3 的质数,其中 k 是一个整数。这样的质数如 3, 7, 11, 19, 23, 31, 43, 59, 127, 251, 503, 1019, …。 检索 */85 探查序列形如 H0, H0+1, H0-1, H0+4, H0-4, …。 在做 (H0 - i2 ) % m 的运算时,当 H0 - i2 0 时,运算结果也是负数。实际算式可改为 j = (H0 - i2 ) % m, while ( j 0 ) j += m 示例:给出一组关键码 { Burke, Ekers, Broad, Blum, Attlee, Alton, Hecht, Ederly }。 散列函数为:Hash (x)=ord (x)-ord (A) 用它计算可得 Hash (Burke) = 1 Hash (Ekers) = 4 Hash (Broad) = 1 Hash (Blum) = 1 Hash (Attlee) = 0 Hash (Hecht) = 7 Hash (Alton) = 0 Hash (Ederly) = 4 检索 */85 因为可能桶号是 0 ? 25, 取满足 4k+3 的质数,表的长度为TableSize = 31,利用二次探查法得到的散列结果如图所示。 0 1 2 3 4 5 Blum Burke Broad Ekers Ederly Hecht 6 7 8 9 10 11 Alton Attlee (3) (1) (2) (1) (2) (1) 25 26 27 28 29 30 (5) (3) 利用二次探查法处理溢出 检索 */85 使用二次探查法处理溢出时的搜索成功的平均搜索长度为: 搜索不成功的平均搜索长度为: 检索 */85 相减,可以得到: 从而 设散列表桶数为 m,待查表项关键码为 x,第一次通过散列函数计算出来的桶号为 H0=hash(x)。当发生冲突时,第 i-1 次和第 i 次计算出来的“下 一个”桶号分别为: 检索 */85 (3)随机探查法(伪随机探查) 理想的探查函数应当在探查序列中随机地从未访问过的空桶中选择下一个位置,即探查序列应当是散列表位置的一个随机序列。 但是,实际上不能随机地从探查序列中选择一个位置,因为在检
您可能关注的文档
- 控爆会汇报.pptx
- 推进宣传(三十七)-工具使用介绍系列-4MSA(.ppt
- 提高水泥稳定砂砾石基层质量QC.pptx
- 提高化学封堵措施成功率--QC.ppt
- 插值与拟合-2012.ppt
- 控制交换网络中的广播流量(v2.0).ppt
- 接入层数据设备培训.pptx
- 摄影景点分享:台湾特色海岸大集合.pptx
- 揭阳华侨中学高一物理《精讲活用》.doc
- 摩擦力(为您服务教育网)2.ppt
- 2025年人教版一年级上册数学期中综合检测试卷及答案 (1).pptx
- 【9历期末】安徽省安庆市2024-2025学年九年级上学期期末历史试题(含解析).docx
- 【9历期中】安徽省淮北市“五校联考”2024-2025学年九年级上学期期中历史试题(含解析).docx
- 2025年部编版五年级上册语文第七单元综合检测试卷及答案.pptx
- 2025年人教版九年级上册数学第二十四章圆【基础提升专题】圆中利用转化思想求角度.pptx
- 2025年人教版九年级上册数学第二十一章综合检测试卷及答案.pptx
- 2025年人教版一年级上册数学第五单元综合检测试卷及答案 (1).pptx
- 2025年人教版一年级上册数学期末质量监测试卷及答案 (1).pptx
- 【9历期末】安徽省滁州市天长市2024-2025学年部编版九年级上学期1月期末历史试题.docx
- 2025年部编版九年级上册历史知识清单.docx
文档评论(0)