- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构讲稿9查找B
第9章 查找 9.2 动态查找表 三、二叉排序树的查找分析 四、平衡二叉树 1)LL平衡处理: 3)LR平衡处理: 例:请将下面序列构成一棵平衡二叉排序树: ( 13,24,37,90,53) 9.3 哈希查找表 一、哈希表的概念 例2 : 若干术语 冲突现象举例: 在哈希查找方法中,冲突是不可能避免的,只能尽可能减少。 二、哈希函数的构造方法 1、直接定址法 2、除留余数法 4、数字分析法 5、平方取中法 7、随机数法 三、冲突处理方法 1、开放定址法(开地址法) 例: 讨论: 2. 二次探测法 2、链地址法(拉链法) 3、再哈希法(双哈希函数法) 四、哈希表的查找及分析 讨论: 本章小结 3.插入和删除的操作 类似于B-树进行,即必要时,也需要进行结点的“分裂”或“归并”。 50 96 15 50 62 78 96 71 78 84 89 96 56 62 20 26 43 50 3 8 15 sq root 一、哈希表的概念 二、哈希函数的构造方法 三、冲突处理方法 四、哈希表的查找及分析 哈希表:即散列存储结构。 散列法存储的基本思想:建立关键码字与其存储位置的对应关系,或者说,由关键码的值决定数据的存储地址。 优点:查找速度极快(O(1)),查找效率与元素个数n无关! 例1:若将学生信息按如下方式存入计算机,如: 将2001011810201的所有信息存入V[01]单元; 将2001011810202的所有信息存入V[02]单元; …… 将2001011810231的所有信息存入V[31]单元。 欲查找学号为2001011810216的信息,便可直接访问V[16]! 有数据元素序列(14,23,39,9,25,11),若规定每个元素k的存储地址H(k)=k,请画出存储结构图。 (注:H(k)=k称为散列函数) 解:根据散列函数H(k)=k ,可知元素14应当存入地址为14的单元,元素23应当存入地址为23的单元,……, 对应散列存储表(哈希表)如下: 讨论:如何进行散列查找? 根据存储时用到的散列函数H(k)表达式,迅即可查到结果! 例如,查找key=9,则访问H(9)=9号地址,若内容为9则成功; 若查不到,应当设法返回一个特殊值,例如空指针或空记录。 … 14 … 11 … 9 … 内容 地址 … 39 … 25 24 23 14 11 9 23 25 39 缺点:空间效率低! 选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放;查找时,由同一个函数对给定值k计算地址,将k与地址单元中元素关键码进行比,确定查找是否成功。 通常关键码的集合比哈希地址集合大得多,因而经过哈希函数变换后,可能将不同的关键码映射到同一个哈希地址上,这种现象称为冲突。 哈希方法(杂凑法) 哈希函数(杂凑函数) 哈希表 (杂凑表) 冲 突 哈希方法中使用的转换函数称为哈希函数(杂凑函数) 按上述思想构造的表称为哈希表(杂凑表) 有6个元素的关键码分别为:(14,23,39,9,25,11)。 选取关键码与元素位置间的函数为H(k)=k mod 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 所以,哈希方法必须解决以下两个问题: 1)构造好的哈希函数 (a)所选函数尽可能简单,以便提高转换速度; (b)所选函数对关键码计算出的地址,应在哈希地址集中大致均匀分布,以减少空间浪费。 2)制定一个好的解决冲突的方案 查找时,如果从哈希函数计算出的地址中查不到关键码,则应当依据解决冲突的规则,有规律地查询其它相关单元。 常用的哈希函数构造方法有: 直接定址法 除留余数法 乘余取整法 数字分析法 平方取中法 折叠法 随机数法 要求一:n个数据原仅占用n个地址,虽然散列查找是以空间换时间,但仍希望散列的地址空间尽量小。 要求二:无论用什么方法存储,目的都是尽量均匀地存放元素,以避免冲突。 Hash(key) = a·key + b (a、b为常数) 优点:以关键码key的某个线性函数值为哈希地址,不会产生冲突. 缺点:要占用连续地址空间,空间效率低。 例:关键码集合为{100,300,500,700,800,900}, 选取哈希函数为Hash(key)=key/100, 则存储结构(哈希表)如下: 0 1 2
您可能关注的文档
- 数字信号处理系统设计与实践 第八章 DSP系统设计.ppt
- 数字信号处理Chapter10.ppt
- 数字信号处理系统设计与开.ppt
- 数字出版的发展趋势与实践探索.ppt
- 数字化教学平台 - 天宁教育博客.ppt
- 数字化摄影X线摄影.ppt
- 数字化校园发展研究与实践.ppt
- 数字化校园建设情况交流汇报.ppt
- 数字化信息化手术室产品方案.ppt
- 数字化管理催生世界级品质.ppt
- 2024年吉林省长春市榆树市土桥镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年安徽省亳州市谯城区十八里镇招聘社区工作者真题及答案详解1套.docx
- 2024年安徽省亳州市谯城区羊种改良站招聘社区工作者真题及参考答案详解一套.docx
- 2024年吉林省白山市抚松县新屯子镇招聘社区工作者真题及答案详解一套.docx
- 2024年吉林省白城市通榆县苏公坨乡招聘社区工作者真题及答案详解一套.docx
- 2024年吉林省长春市榆树市五棵树镇招聘社区工作者真题含答案详解.docx
- 2024年安徽省亳州市蒙城县范集工业园区招聘社区工作者真题及完整答案详解1套.docx
- 2024年吉林省白城市镇赉县哈吐气蒙古族乡招聘社区工作者真题及参考答案详解1套.docx
- 2024年安徽省六安市舒城县杭埠镇招聘社区工作者真题附答案详解.docx
- 2024年安徽省六安市寿县窑口乡招聘社区工作者真题带答案详解.docx
文档评论(0)