- 1、本文档共93页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例 30个地区的各民族人口统计表 编号 地区别 总人口 汉族 回族…... 1 北京 2 上海 …... …... 以编号作关键字, 构造哈希函数:H(key)=key H(1)=1 H(2)=2 以地区别作关键字,取地区 名称第一个拼音字母的序号 作哈希函数:H(Beijing)=2 H(Shanghai)=19 H(Shenyang)=19 从例子可见: 哈希函数只是一种映象,所以哈希函数的设定很灵活,只要使任何关键字的哈希函数值都落在表长允许的范围之内即可。 冲突:key1?key2,但H(key1)=H(key2)的现象 一般来说,只能尽量减少冲突而不能完全避免冲突,这是因为通常关键字集合比较大,其元素包括所有可能的关键字,而地址集合的元素仅为哈希表中的地址值,如上例中城市和地区的可能出现值不下几百几千而地址集合的大小只有26,所以哈希函数是一个压缩映象,就不可避免产生冲突。在定义哈希表时既要定义好哈希函数又要给出处理冲突的方法。 哈希函数构造的方法 直接定址法 数字分析法 平方取中法 折叠法 除留余数法 随机数法 哈希函数为关键字的线性函数 H(key) = key 或者 H(key) = a ? key + b 此法仅适合于: 地址集合的大小 = = 关键字集合的大小 其中a和b为常数 直接定址法 数字分析法 假设关键字集合中的每个关键字都是由 s 位数字组成 (u1, u2, …, us),分析关键字集中的全体, 并从中提取分布均匀的若干位或它们的组合作为地址。此法适于能预先估计出全体关键字的每一位上各种数字出现的频度。 例 有80个记录,关键字为8位十进制数,哈希地址为2位十进制数 8 1 3 4 6 5 3 2 8 1 3 7 2 2 4 2 8 1 3 8 7 4 2 2 8 1 3 0 1 3 6 7 8 1 3 2 2 8 1 7 8 1 3 3 8 9 6 7 8 1 3 6 8 5 3 7 8 1 4 1 9 3 5 5 ….. ….. ?? ? ??? ?? 分析: ?只取8 ?只取1 ?只取3、4 ?只取2、7、5 ????数字分布近乎随机 所以:取????任意两位或两位 与另两位的叠加作哈希地址 以关键字的平方值的中间几位作为存储地址。求“关键字的平方值” 的目的是“扩大差别” ,同时平方值的中间各位又能受到整个关键字中各位的影响。 此方法适合于: 关键字中的每一位都有某些数字重复出现频度很高的现象。 平方取中法 将关键字分割成若干部分,然后取它们的叠加和为哈希地址。两种叠加处理的方法: 移位叠加:将分割后的几部分低位对齐相加 间界叠加:从一端沿分割界来回折送,然后对齐相加 此法适于关键字的数字位数特别多。 折叠法 例 关键字为 :0442205864,哈希地址位数为4 5 8 6 4 4 2 2 0 0 4 1 0 0 8 8 H(key)=0088 移位叠加 5 8 6 4 0 2 2 4 0 4 6 0 9 2 H(key)=6092 间界叠加 除留余数法 设定哈希函数为: H(key) = key MOD p ( p≤m ) 其中, m为表长 p 为不大于 m 的素数 或是 不含 20 以下的质因子 给定一组关键字为: 12, 39, 18, 24, 33, 21, 若取 p=9, 则他们对应的哈希函数值将为: 3, 3, 0, 6, 6, 3 可见,若 p 中含质因子 3, 则所有含质因子 3 的关键字均映射到“3 的倍数”的地址上,从而增加了“冲突”的可能 例如: 为什么要对 p 加限制? 随机数法 设定哈希函数为: H(key) = Random(key) 其中,Random 为伪随机函数 此法用于对长度不等的关键字构造哈希函数。 选取哈希函数考虑的因素: 计算哈希函数所需时间 关键字长度 哈希表长度(哈希地址范围) 关键字分布情况 记录的查找频率 处理冲突的方法 “处理冲突” 的实际含义是: 为产生冲突的地址寻找下一个哈希地址。 开放定址法 再哈希法 链地址法 为产生冲突的地址 H(key) 求得一个地址序列: H0,
您可能关注的文档
- 一下经典诵读2题稿.ppt
- 一元一次不等式(第2课时)题稿.ppt
- 一元一次不等式(组)复习,题稿.ppt
- 文科附加题复习建议20140307题稿.ppt
- 一元一次不等式(组)及应用题稿.ppt
- 蜀河电站灯泡贯流式机组题稿.ppt
- 一元一次不等式(组3)复习题稿.ppt
- 一元一次方程的应用利率问题题稿.ppt
- 文秘项目4题稿.ppt
- 文明餐桌班会题稿.ppt
- 2025年房地产企业数字化营销团队培训策略分析.docx
- 《艺术展览策划中互动性设计对观众审美认知的影响研究》教学研究课题报告.docx
- 高中化学与化学工业项目式学习跨学科整合研究教学研究课题报告.docx
- 小学英语数字化教学管理智能任务分配系统在语音教学中的应用教学研究课题报告.docx
- 《基于数字孪生技术的制造业产品设计与生产中的智能生产成本分析与控制》教学研究课题报告.docx
- 跨学科融合学习场景下的初中英语与历史教学策略研究教学研究课题报告.docx
- 面向职业教育的数字化教学资源评价体系构建与实证研究教学研究课题报告.docx
- 2025至2030生物反馈仪市场前景分析及投资策略与风险管理报告.docx
- 初中数学教学画像构建与教学资源推荐策略优化教学研究课题报告.docx
- 数字化时代下小学英语教师教学画像构建与评价体系研究教学研究课题报告.docx
文档评论(0)