- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.4 散列表的查找.ppt
* 9.7 散列表的检索 一、散列表的概念 二、散列函数的构造方法 三、冲突处理方法 检索时不要比较,通过计算直接给出元素地址(下标) 包含以下内容: 关键字决定存储地址,即:存储地址=H(元素键值) 一、散列表的概念 思想 散列地址(下标) 散列函数 这样的存储叫散列存储 这样的方法叫散列方法 用散列方法构造的线性表叫散列表 散列也称Hash(哈希)或杂凑 根据存储时用到的散列函数进行的查找叫散列查找 优点 查找速度极快(O(1)),查找效率与元素个数n无关! 有6个元素的关键码分别为:(14,23,39,9,25,11)。 选取散列函数为 H(key)=key % 7 通过散列函数对6个元素建立散列表: 25 39 23 9 14 举例: 6个元素用7个 地址应该足够! H(14)=14%7=0 11 H(25)=25%7=4 H(11)=11%7=4 有冲突! 0 1 2 3 4 5 6 冲突: 通过散列函数的计算,不同的关键码映射到同一个散列地址上,这种现象称为冲突。 其中,23、9互为同义词,39、25、11互为同义词 所以,散列方法必须解决以下两个问题: 1)如何构造好的散列函数 (a)所选函数尽可能简单,以便提高转换速度; (b)所选函数对关键码计算出的地址,应在散列地址集中大致均匀分布,以减少空间浪费。 2)如何制定一个好的解决冲突的方案 查找时,如果从散列函数计算出的地址中查不到关键码,则应当依据解决冲突的规则,有规律地查询其它相关单元。 在散列查找方法中,冲突是不可能避免的,只能尽可能减少! 二、散列函数的构造方法 常用的散列函数构造方法有: 直接定址法 除留余数法 乘余取整法 数字分析法 平方取中法 折叠法 随机数法 要求一:n个数据原仅占用n个地址,虽然散列查找是以空间换时间,但仍希望散列的地址空间尽量小。 要求二:无论用什么方法存储,目的都是尽量均匀地存放元素,以避免冲突。 H(key) = a·key + b (a、b为常数) 优点:以关键码key的某个线性函数值为散列地址,不会产生冲突. 缺点:要占用连续地址空间,空间效率低。 例:关键码集合为{100,300,500,700,800,900}, 选取散列函数为Hash(key)=key/100, 则存储结构(散列表)如下: 0 1 2 3 4 5 6 7 8 9 900 800 700 500 300 100 1、直接定址法 H(key)=key % p (p是一个整数) 特点:以关键码除以p的余数作为散列地址。 关键:如何选取合适的p? 技巧:若设计的散列表长为MAX,则一般取p≤MAX且为质数 3、乘余取整法 2、除留余数法 例:欲以学号最后两位作为地址,则散列函数应为: H(k)=100*(0.01*k % 1 ) 其实也可以用法2实现: H(k)=k % 100 特点:某关键字的某几位组合成散列地址。所选的位应当是:各种符号在该位上出现的频率大致相同。 3 4 7 0 5 2 4 3 4 9 1 4 8 7 3 4 8 2 6 9 6 3 4 8 5 2 7 0 3 4 8 6 3 0 5 3 4 9 8 0 5 8 3 4 7 9 6 7 1 3 4 7 3 9 1 9 例:有一组(例如80个)关键码,其样式如下: 4、数字分析法 讨论: ① 第1、2位均是“3和4”,第3位也只有“ 7、8、9”,因此,这几位不能用,余下四位分布较均匀,可作为散列地址选用。 位号:① ② ③ ④ ⑤ ⑥ ⑦ ② 若散列地址取两位(因元素仅80个),则可取这四位中的任意两位组合成散列地址,也可以取其中两位与其它两位叠加求和后,取低两位作散列地址。 特点:对关键码平方后,按散列表大小,取中间的若干位作为散列地址。 理由:因为中间几位与数据的每一位都相关。 例:2589的平方值为6702921,可以取中间的029为地址。 6、折叠法 特点:将关键码自左到右分成位数相等的几部分(最后一部分位数可以短些),然后将这几部分叠加求和,并按散列表表长,取后几位作为散列地址。 适用于:每一位上各符号出现概率大致相同的情况。 法1:移位法 ── 将各部分的最后一位对齐相加。 法2:间界叠加法──从一端向另一端沿分割界来回折叠后,最后一位对齐相加。 例:元 用法1: 427+518+96=1041 用法2: 427 5
您可能关注的文档
- 2014级在职公共管理硕士 (单双证)MPA、工商管理硕士(单 ….doc
- 2015-2016学年江西省新余一中、宜春中学高三(上)月考物....DOC
- 2015~2016学年度 - 扬州市江都区教育局-首页.doc
- 2015届研究生生源信息表.doc
- 2015年“逐梦计划”——四川大学生.doc
- 2015年全国大学生西门子杯工业自动化挑战赛--设计开发 ….doc
- 2015年机器人校内赛规则1.0 - ※※本科教学网-北京科技大 ….doc
- 2015年省级生产服务业发展专项资金项目安排计划表.doc.doc
- 2015年罗源县公开招聘普通中学新任教师岗位招聘人数及 ....doc
- 2015年龙游县综合事业单公开招考 政策问答.doc
- 2025年医师三基口腔科基础知识(牙周病学与口腔黏膜病学)模拟试卷2(题.pdf
- 2025年医师三基基本理论(医学微生物学与免疫学)模拟试卷1(题后含答案及解析).pdf
- 2025年财务管理实训报告范文.pdf
- 2025年调研报告:深入挖掘历史文化资源,促进文化旅游产业发展.pdf
- 2025年印度运营商行业报告.pptx
- 2025年医学高级职称考试《中医肛肠》精选习题(必考).pdf
- 2025年医生医务人员个人年度工作总结(精选8篇).pdf
- 2025年医学高级(中医内科学)-习题 (案例分析题 2).pdf
- 2025年医师专业知识习题库及参考答案.pdf
- 2025年调整心态的句子经典.pdf
最近下载
- 2025年国企竞聘笔考试试题库目简答题及答案指导.docx VIP
- 6.1《友谊的真谛》课件 2025-2026道德与法治七年级上册 统编版.pptx VIP
- 无犯罪记录证明-范文.pdf VIP
- 调味品和动物油脂加工项目环境影响报告.doc
- 换热站建设标准.doc VIP
- 研究生2024版新中特课件第二章新时代新征程中国共产党的使命任务.pptx VIP
- 推进供热企业标准化体系建设思考(工商管理毕业论文).doc VIP
- 2025入党积极分子发展对象培训考试题库100题含答案(完整版).docx VIP
- 调味品生产自动化一体化项目环境影响报告表.pdf VIP
- 2024年安徽省高考生物试卷(含答案详解).pdf
原创力文档


文档评论(0)