哈希冲突的产生与解决

哈希冲突在哈希表中不可避免,当关键字k1≠k2但H(k1)=H(k2)时发生冲突。解决冲突的方法包括开放定址法、再哈希法、链地址法和建立公共溢出区。开放定址法通过寻找下一个空位避免冲突;再哈希法使用多个哈希函数;链地址法将冲突元素存储在同义词链表中;公共溢出区将冲突元素放入溢出表。
摘要由CSDN通过智能技术生成

目录

哈希冲突的产生

哈希冲突解决办法

1.开放定址法(再散列法)

2.再哈希法

3.链地址法(拉链法)

4.建立公共溢出区


哈希冲突的产生

哈希表是根据关键码的值而直接进行访问的数据结构。

哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。

哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素。(哈希表可以用来快速判断一个元素是否出现在集合里)

哈希法法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元;以后当查找关键字为k的元素时,再利用哈希函数计算出该元素的存储位置p=f(k),从而达到按关键字直接存取元素的目的。

 当关键字集合很大时,关键字值不同的元素可能会映象到哈希表的同一地址上,即 k1≠k2 ,但 H(k1)=H(k2),这种现象称为冲突,此时称k1和k2为同义词。实际中,冲突是不可避免的,只能通过改进哈希函数的性能来减少冲突。

综上所述,哈希法主要包括以下两方面的内容:

 1)如何构造哈希函数

 2)如何处理冲突。

哈希冲突解决办法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值