- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
散列函数的定义域必须包括需要存储的全部关键码-大连理工大学
在随机存储中: 200302 200305 200301 张三 李四 王五 19 21 20 查找某一条记录需要进行一系列的“比较”。 查找的效率依赖于比较的次数。 能否在记录的关键字和存储地址之间构造这样一种关系 f ,使得关键字和存储地址一一对应 ? 此对应关系 f 称为散列函数。 学号 姓名 年龄 01 02 03 散列 负载因子 α=n/m 散列表的空间大小为m 填入表中的结点数为n 冲突 某个散列函数对于不相等的关键码计算出了相同的散列地址 在实际应用中,不产生冲突的散列函数极少存在 同义词 发生冲突的两个关键码 散列 把关键码值映射到存储位置的函数,通常用 h 来表示 Address = Hash ( key ) 散列函数 构造散列函数时的几点要求: 散列函数的定义域必须包括需要存储的全部关键码,如果散列表允许有 m 个地址时, 其值域必须在 0 到 m-1 之间。 散列函数计算出来的地址应能均匀分布在整个地址空间中:若 key 是从关键码集合中随机抽取的一个关键码,散列函数应能以同等概率取0 到 m-1 中的每一个值。 散列函数应是简单的,能在较短的时间内计算出结果。 散列函数 除留余数法 折叠法 平方取中法 基数转换法 直接定址法 散列函数 除留余数法 H(key) = key % p 或 H(key) = key % p + c 这里 p m; 余数总在 0 ~ p-1 之间。 散列函数 示例:有一个关键码 key = 962148,散列表大小 m = 25,即 HT[25]。取质数 p= 23。散列函数 hash ( key ) = key % p。则散列地址为 hash ( 962148 ) = 962148 % 23 = 12。 可以按计算出的地址存放记录。需要注意的是,使用上面的散列函数计算出来的地址范围是 0到 22,因此,从23到24这几个散列地址实际上在一开始是不可能用散列函数计算出来的,只可能在处理冲突时达到这些地址。 散列函数 选取 p 为质数的理由: 设 key 值都为奇数,选 p 为偶数; 则 H(key) = key % p ,结果为奇数,一半单元被浪费掉。 设 key 值都为 5 的倍数,选 p 为 95;则 H(key) = key % p , 结果为:0、5、10、15、…… 90 。4/5 的单元被浪费掉。 散列函数 折叠法(移位法、分界法) key = 381,412,975 选取 768 或 570 作为散列地址。 381 412 975 1 768 975 214 381 1 570 散列函数 平方取中法 e.g: (4731)2 = 223 82 361 ; 选取 82 (在 m =100 情况下)。 此方法在词典处理中使用十分广泛。它先计算构成关键码的标识符的内码的平方,然后按照散列表的大小取中间的若干位作为散列地址。 设标识符可以用一个计算机字长的内码表示。因为内码平方数的中间几位一般是由标识符所有字符决定,所以对不同的标识符计算出的散列地址大多不相同,即使其中有些字符相同。 散列函数 标识符 内码 内码的平方 散列地址 A 01 01 001 A1 0134 20420 042 A9 0144 23420 342 B 02 4 004 DMAX 21526443617100 443 DMAX1 0415013034 5264473522151420 352 AMAX 135423617100 236 AMAX1 0115013034 3454246522151420 652 标示符的八进制内码表示及其平方值 散列函数 基数转换法 将关键字k转换为另外一种数字基数,再对表的大小取模。 如:k=(34
您可能关注的文档
- 振动压路机的一种非线性动力学特性研究-福州大学学报.PDF
- 振动圆锥破碎机的动力学响应分析.PDF
- 振动检测技术在日常设备保养中的应用-轴承检测仪.DOC
- 振动式片针组合表面粗糙度触觉再现研究-振动测试与诊断.PDF
- 振动深松机多组振动深松铲自平衡性能及仿真分析-IngentaConnect.PDF
- 振动环境下微小间隙的光栅测量法-太赫兹科学与电子信息学报.PDF
- 振动筛机架结构的优化设计-华侨大学学报自然科学版.PDF
- 振荡流中圆柱受力测研究-中国科学院力学研究所机构知识库.PDF
- 振声高中附设进修学校学年寒假生活须知-振声高级中学.DOC
- 挺胸体女性服装结构设计的优化-中原工学院学报.PDF
- 广东省深圳市龙岗区德琳学校初中部2022-2023学年七年级上学期期中考试英语试题(原卷版+解析).docx
- 广东省珠海市第四中学、立才学校、梅华中学2022-2023学年七年级上学期期中质量检测英语试题(原卷版+解析).docx
- 教科版2024-2025学年六年级科学上册第一单元第4课时《生物细胞》同步练习(含答案).docx
- 牛津沪教版七年级英语上册单元速记•巧练 Unit 7 【单元测试 · 提高卷】.docx
- 牛津沪教版七年级英语上册单元速记•巧练 Unit 5【单元测试 · 基础卷】.docx
- 广东省深圳市南山区太子湾学校2022-2023学年七年级上学期期中考试英语试题(原卷版+解析).docx
- 广东省深圳市南山第二外国语学校(集团)2022-2023学年七年级上学期期中考试英语试题(含听力)(原卷版+解析).docx
- 牛津沪教版七年级英语上册单元速记•巧练 2023-2024学年七年级上学期期末英语全真模拟卷(深圳适用02).docx
- 广东省阳江市江城区2022-2023学年七年级上学期期中考试英语试题(原卷版+解析).docx
- 广东省梅州市梅县区宪梓中学2022-2023学年七年级上学期期中英语试题(原卷版+解析).docx
文档评论(0)