哈希表的消除哈希冲突——双散列

以一个例子讲解双散列的应用:

如下表,采用的散列函数均是key%(talesize)。

当插入49时,与已经插入的89产生哈希冲突,则采用双散列函数来处理这样的哈希冲突,这里双散列函数采用的是。这里采用的是hash2(x)=7-(x mod 7)。带入49计算得到hash2(49)=7-0=7。则从第9个位置开始数7次,到了第6个位置,所以49插入到第6个位置。

当插入58时,与已经插入的18产生哈希冲突,带入hash2(58)=7-(58 mod 7)=7-2=5。则从第8个位置开始数5次到达第3个位置。

当插入69时,与已经插入的89产生哈希冲突,带入hash2(69)=7-(69 mod 7)=7-6=1。则从第9个位置开始数1次到达第1个位置。

假设插入60,与已经插入的69产生哈希冲突,带入hash2(60)=7-(60 mod 7)=7-4=3。则从第1个位置开始数3次到达第3个位置发现已有数据58,冲突,则f(2)=2*3=6,数6次到达第6个位置,与49冲突,则f(3)=3*3=9,数9次到达第9个位置,则与89冲突。则f(4)=4*3=12,12-10=2(减去tablesize),则数两次可以插入到无数据的第2个位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值