- 66
- 0
- 约4.46千字
- 约 24页
- 2018-05-14 发布于四川
- 举报
§9.3 哈希表 什么是哈希表 哈希函数的构造方法 处理冲突的方法 哈希表的查找及分析 哈希函数示例:建立30个地区的人口统计表,用一维数组C(1:30)存放此表,每条记录以地区名作为关键字。哈希函数可以按如下方法设置 取关键字第一个字母在字母表中的序号作为关键字; 首字母和最后一个字母的序号之和,若大于表长则减去30; 每个汉字首字母的ASCII码之和的八进制形式,看作十进制数除以30取余数,若余数为零则加上30。 作业: 选取哈希函数H(k)=(3k)mod11。用开放定址法处理冲突,di=i ( (7k)mod10 + 1) (i=1,2,3,…)。试在0~10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,并求等概率情况下查找成功时的ASL。 注意:1. 发生冲突时,如何确定新的地址; 2. ASL的计算。 * * * 9.3.1 什么是哈希表 前面我们学习了各种数据结构上的查找方法,查找过程需要进行一系列的关键字比较,查找效率依赖于比较的次数; 最理想的查找:不经过任何比较,给定一个关键字,直接就找到对应数据元素的存储位置。 要实现这一点,就必须建立数据元素的存储位置和它的关键字之间的对应关系f,使每个关键字k和结构中一个惟一的存储位置f(k)对应。这个对应关系 f 称为哈希(Hash)函数,按这个思想建立的表为哈希表。 f3(key) f2(key) f1(key) SICHUAN HENAN SHANDONG SHANGHAI SHANXI HEBEI TIANJIN BEIJING key 2 20 8 19 19 19 8 19 9 4 17 28 28 26 22 3 4 26 2 13 23 17 16 16 从这个例子可见: 哈希(Hash)函数是一个映象,即将关键字的集合映射到某个地址集合上, 只要哈希函数值不超出表长允许范围即可; 由于哈希函数是一个压缩映象,对不同关键字可能得到同一哈希地址,即key1?key2,而f(key1)=f(key2) ,这种现象称冲突。具有相同函数值的关键字对该哈希函数来说称做同义词。 冲突只能尽可能减少,而不能完全避免。因此,在建造哈希表时不仅要设定一个好的哈希函数,还要设定一种处理冲突的方法。 综上所述,可如下描述哈希表: 根据设定的哈希函数 H(key) 和处理冲突的方法,将一组关键字映像到一个有限的连续的地址集 (区间) 上,并以关键字在地址集中的“像”作为相应记录在表中的存储位置,这种表便称为哈希表。 这一映像过程称为哈希造表或散列,所得存储位置称哈希地址或散列地址。 常用的构造哈希函数的方法: 若是非数字关键字,则需先对其进行数字化处理。 1. 直接定址法 3. 平方取中法 5. 除留余数法 4. 折叠法 6. 随机数法 2. 数字分析法 9.3.2 哈希函数的构造方法 哈希函数为关键字的线性函数 H(key) = key 或者 H(key) = a ? key + b 1. 直接定址法 例:统计解放后出生的人口数量,以年份作为关键字,选取哈希函数为Hash(key)=key-1948,则存储结构(哈希表)如下: 0 1 2 3 … 40 … … 1998 … 1951 1950 1949 优点:以关键字的线性函数值为哈希地址,不会产生冲突. 缺点:实际中能使用这种哈希函数的情况很少。 此方法仅适合于: 预先知道关键字每一位的数字分布状况。 2. 数字分析法 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个)关键字,其样式如下: 位号:① ② ③ ④ ⑤ ⑥ ⑦ 假设关键字集合中的每个关键字都是由 s 位数字组成 (u1, u2, …, us),分析关键字集中的全体, 从中提取分布均匀的若干位并利用它们的组合作为地址。 取关键字平方后的中间若干位作为哈希地址。 理由:因为一个数平方后的中间几
您可能关注的文档
最近下载
- Philips 飞利浦Series 1200 全自动浓缩咖啡机 EP1221 82产品支持与说明书 全自动浓缩咖啡机.pdf
- 2024年枣庄科技职业学院单招职业技能测试题库及答案解析.docx VIP
- 全髋置换术后护理查房 (2).pptx VIP
- 04-6 班子对照-高校党委领导班子2025年度民主生活会对照检查材料.docx VIP
- 纯碱,新生焕发,景气不减.pdf VIP
- 认知障碍自评表(AD8).docx VIP
- 2025枣庄科技职业学院单招《数学》试题及完整答案详解(有一套).docx VIP
- DHG9070A型电热鼓风干燥箱说明书.pdf VIP
- 【老照片】1966年-1967年的彩色中国.docx VIP
- 蒙特利尔认知评估量表.doc VIP
原创力文档

文档评论(0)