欢迎您访问广东某某机械环保科有限公司网站,公司主营某某机械、某某设备、某某模具等产品!
全国咨询热线: 400-123-4567

新闻资讯

哈希游戏| 哈希游戏平台| 哈希游戏APP

HAXIYOUXI-HAXIYOUXIPINGTAI-HAXIYOUXIAPP

数据结构第22讲_哈希表哈希游戏- 游戏平台- 官方网站和插入排序1_C

作者:小编2025-05-06 12:23:07

  哈希游戏- 哈希游戏平台- 哈希游戏官方网站

数据结构第22讲_哈希表哈希游戏- 哈希游戏平台- 哈希游戏官方网站和插入排序1_C

  在哈希存储中,若发生冲突, 在哈希存储中,若发生冲突,则必须采取特殊的方法 来解决冲突问题,才能使哈希查找能顺利进行。 来解决冲突问题,才能使哈希查找能顺利进行。虽然冲突 不可避免,但发生冲突的可能性却与三个方面因素有关。 不可避免,但发生冲突的可能性却与三个方面因素有关。 (1)装填因子α (1)装填因子α; 装填因子 装填因子是指哈希表中己存入的元素个数 n 与哈希 的比值, α=n/m(α=1)。 表的大小 m 的比值,即α=n/m(α=1)。 α越小,发生冲突的可能性越小,反之,发生冲突的 越小,发生冲突的可能性越小,反之, 可能性就越大。但是, 可能性就越大。但是,α太小又会造成大量存贮空间的浪 因此必须兼顾存储空间和冲突两个方面。 费,因此必须兼顾存储空间和冲突两个方面。 (2)所构造的哈希函数; (2)所构造的哈希函数; 所构造的哈希函数 (3)解决冲突的方法。 (3)解决冲突的方法。 解决冲突的方法

  哈希表技术的主要目标是提高查找效率。 哈希表技术的主要目标是提高查找效率。 哈希函数: 1. 哈希函数: 根据关键字直接计算出元素所在位置的函数。 根据关键字直接计算出元素所在位置的函数。 例:设哈希函数为:H(K)=K/31,则构造关键 设哈希函数为:H(K)=K/31, K/31 11、13、16、21、 字序列为 1、2、5、9、11、13、16、21、27 的 散列表(哈希表) 散列表(哈希表)为:

  开放地址就是表中尚未被占用的地址, 开放地址就是表中尚未被占用的地址,当新插入的记 录所选地址已被占用时,即转而寻找其它尚开放的地址。 录所选地址已被占用时,即转而寻找其它尚开放的地址。 (1)线性探测法 为表长) 设散列函数 H(K)=K mod m (m为表长),若发生 冲突,则沿着一个探查序列逐个探查,那么, 冲突,则沿着一个探查序列逐个探查,那么,第i次计算 冲突的散列地址为: 冲突的散列地址为: Hi=(H(K)di) mod m =1,2,…,m ,m(di=1,2, ,m-1)

  选用关键字的某几位组合成哈希地址。 选用关键字的某几位组合成哈希地址。 选用原则应当是:各种符号在该位上出现的频率大致相同。 选用原则应当是:各种符号在该位上出现的频率大致相同。 例:有一组(例如80个)关键码,其样式如下: 有一组(例如80个 关键码,其样式如下: 80 讨论: 讨论: 3 4 7 0 5 2 4 位均是“ ① 第1、2位均是“3和4”,第3位也 , 3 4 9 1 4 8 7 3 4 8 2 6 9 6 只有“ 只有“ 7、8、9”,因此,这几位不 ,因此, 3 4 8 5 2 7 0 能用,余下四位分布较均匀,可作 能用,余下四位分布较均匀, 3 4 8 6 3 0 5 为哈希地址选用。 为哈希地址选用。 3 4 9 8 0 5 8 ② 若哈希地址取两位(因元素仅80 若哈希地址取两位(因元素仅80 3 4 7 9 6 7 1 ),则可取这四位中的任意两位组 个),则可取这四位中的任意两位组 3 4 7 3 9 1 9 合成哈希地址, 合成哈希地址,也可以取其中两位与 位号: 位号:① ② ③ ④ ⑤ ⑥ ⑦ 其它两位叠加求和后, 其它两位叠加求和后,取低两位作哈 希地址。 希地址。

  线性探测法的优点:只要哈希表未被填满, 线性探测法的优点:只要哈希表未被填满,保证 能找到一个空地址单元存放有冲突的元素; 能找到一个空地址单元存放有冲突的元素; 线性探测法的缺点:可能使第i 线性探测法的缺点:可能使第i 个哈希地址的同 义词存入第i1 个哈希地址, 义词存入第i1 个哈希地址,这样本应存入 i1个哈希地址的元素变成了第i2个哈希 个哈希地址的元素变成了第i2 第i1个哈希地址的元素变成了第i2个哈希 地址的同义词, 地址的同义词,……, , 因此,可能出现很多元素在相邻的哈希地址 因此, 堆积”起来,大大降低了查找效率。 上“堆积”起来,大大降低了查找效率。 可采用二次探测法 伪随机探测法, 二次探测法或 可采用二次探测法或伪随机探测法,以改善 堆积”问题。 “堆积”问题。

  实际工作中需视不同情况采用不同的哈希函数。 实际工作中需视不同情况采用不同的哈希函数。通 常考虑的因素: 常考虑的因素: (1)计算哈希函数所需时间( (1)计算哈希函数所需时间(包括硬件指令的因 计算哈希函数所需时间 素) ; (2)关键字的长度; (2)关键字的长度; 关键字的长度 (3)哈希表的大小; (3)哈希表的大小; 哈希表的大小 (4)关键字的分布情况; (4)关键字的分布情况; 关键字的分布情况 (5)记录的查找频率。 (5)记录的查找频率。 记录的查找频率

  是将关键字按要求的长度分成位数相等的几段, 是将关键字按要求的长度分成位数相等的几段, 最后 一段如不够长可以短些, 一段如不够长可以短些,然后把各段重叠在一起相加并去 掉进位,以所得的和作为地址。 掉进位,以所得的和作为地址。 适用于:每一位上各符号出现概率大致相同的情况。 适用于:每一位上各符号出现概率大致相同的情况。 移位法:将各部分的最后一位对齐相加。 移位法:将各部分的最后一位对齐相加。 间界叠加法:从一端向另一端沿分割界来回折叠后, 间界叠加法:从一端向另一端沿分割界来回折叠后,最 后一位对齐相加。 后一位对齐相加。 例:元素42751896, 元素42751896, 移位法: 427+518+96=1041 移位法: 427+518+96=1041 间界叠加法: 427 518 96— 72451869 =1311 间界叠加法: 96

  3.哈希表 3.哈希表 根据设定的哈希函数 H(key) 和处理冲突的方 法将一组关键字映象到一个有限的连续的地址集 (区间)上,并以关键字在地址集中的“象”作 区间) 并以关键字在地址集中的“ 为记录在表中的存储位置,这种表便称为哈希表, 哈希表, 为记录在表中的存储位置,这种表便称为哈希表 这一映象过程称为哈希造表或散列, 这一映象过程称为哈希造表或散列,所得存储位 哈希造表 哈希地址或 置称为哈希地址 散列地址。 置称为哈希地址或散列地址。