哈希(HASH)冲突的处理方法

通过构造良好的哈希函数可以减少冲突,但一般不能完全避免冲突。因此解决冲突是哈希法的另一个关键问题。常用的解决冲突方法有以下四种。

  • 开放地址法
    这种方法也称再散列法,基本思想是当关键字key的哈希地址p = H(key)冲突时,以p为基础再产生一个新的哈希地址p1,p1再冲突时,再以p为基础,产生地址p2……知道产生一个不冲突的地址pi,再将key填入其中,这种方法都有一个通用的再散列表达式
Hi = (H(key)+ di)%m
其中H(key)是哈希函数,m为表长,di是增量序列,增量的取值方式不同,相应的再散列方式也不相同,主要有以下三种。

(1)线性探测再散列

i = 1,2,3,4……..m-1.
采用这种方法冲突发生时,查看下一单元,直到找到一个空的单元,或者遍历全表。

(2)二次探测再散列

m = 1^2,-1^2 ,2^2,-2^2……k^2,-k^2.(k < m/2).
采用这种方法冲突发生时在表的左右进行探测比较灵活。

(3)伪随机探测再散列

i = 伪随机数序列
具体实现时需要建立一个伪随机数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值