- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基本思想: 在记录的存储地址和它的关键字之间建立一个确定的对应关系;这样,不经过比较,一次存取就能得到所查的元素。 在记录的关键字与记录的存储地址之间建立的一种对应关系H 叫哈希函数,也叫杂凑函数或散列函数. 哈希表——应用哈希函数,由记录的关键字确定记录在表中的地址,并将记录放入此地址,这样构成的表叫哈希表. 哈希查找——又叫散列查找,利用哈希函数进行查找的过程叫哈希查找. 2. 数字分析法 构造:对关键字进行分析,取关键字的若干位或其组合作哈希地址 适于关键字位数比哈希地址位数大,且可能出现的关键字事先知道的情况 4.折叠法 构造:将关键字分割成位数相同的几部分,然后取这几部分的叠加和(舍去进位)做哈希地址. 种类 移位叠加:将分割后的几部分低位对齐相加 间界叠加:从一端沿分割界来回折送,然后对齐相加 适于关键字位数很多,且每一位上数字分布大致均匀的情况 分类 线性探测再散列:di=1,2,3,…,m-1 二次探测再散列:di=12,-12,22,-22, 32,…,±k2(k?m/2) 伪随机探测再散列:di=伪随机数序列 3. 拉链法 方法: 将所有关键字为同义词的记录存储在一个单链表中,并用一维数组存放头指针. * 散列法(哈希查找) 一. 散列表(哈希) 关键字 集合 存储地址 集合 Hash 哈希函数的定义 例 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)的现象叫冲突。 1. 直接定址法 构造:取关键字或关键字的某个线性函数作哈希地址,即H(key)=key 或 H(key)=a·key+b 特点 直接定址法所得地址集合与关键字集合大小相等,不会发生冲突 实际中能用这种哈希函数的情况很少 二 哈希函数的构造方法 例 有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 ????数字分布近乎随机 所以:取????任意两位或两位与另两位的叠加作哈希地址 3. 平方取中法 构造:取关键字平方后中间几位作哈希地址 适于在选定哈希函数时不一定知道关键字的 全部情况。 例 关键字为 :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 间界叠加 5. 除留余数法 构造:取关键字被某个不大于哈希表表长m的数p 除后所得余数作哈希地址,即H(key)=key MOD p, p?m 特点 简单、常用,可与上述几种方法结合使用 p的选取很重要;p选的不好,容易产生同义词 选取哈希函数,考虑以下因素: 计算哈希函数所需时间 关键字长度 哈希表长度(哈希地址范围) 关键字分布情况 记录的查找频率 三、处理冲突的方法 1. 开地址法 方法:当冲突发生时,形成一个探查序列;沿此序列逐个 地址探查,直到找到一个空位置(开放的地址),将发生 冲突的记录放到该地址中, 即 Hi=(H(key)+di) MOD m, i=1,2 ,…,k (k?m-1) 其中:H(key)——哈希函数 m ——哈希表表长 di ——增量序列 例 表长为1
您可能关注的文档
最近下载
- 2025至2030中国宫颈癌疫苗行业市场占有率及投资前景评估规划报告.docx VIP
- 2025至2030汽车防爆膜行业市场占有率及投资前景评估规划报告.docx VIP
- 2025至2030热熔线标涂料行业市场发展分析及投资前景报告.docx VIP
- 2021年禁毒社工招聘考试试题.doc VIP
- 医院病理技师礼仪与病理诊断.pptx VIP
- 2021年度禁毒社工招聘考试试题.doc VIP
- 《十二公民》剧本.docx VIP
- 五年级上册书法课件-8.口字旁 见字旁|人美版.ppt VIP
- 《医学信息学概论》管理.pptx VIP
- 考研真题 武汉大学化学与分子科学学院883化工原理历年考研真题汇编.pdf VIP
文档评论(0)