随机的力量(1) - The power of random two choices

本文探讨了哈希函数中冲突的问题,提出了随机选取两个桶并选择链表较短者插入的方法来减少冲突链表的最大长度。实验表明,这种随机双选择策略能显著优于单一随机选择,详细研究可在相关论文中找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我们都知道对于哈希函数来说,有一个绕不开的话题就是冲突。 当N个object通过随机函数映射到N个桶的时候,可能由于冲突而出现Hash(x) = Hash(y)的情况。经典的处理哈希冲突的方法包括链表法(Separate Chaining)和开放寻址(Open Addressing)。对于链表法来说,冲突位置的链表长度越长,算法效率越差。



问题1: 如果N个Object随机哈希到N个桶,最大链表长度可能是多少呢?

答案: log N / log log N


问题2: 如果每次选择哈希映射的桶时,随机两次挑出两个桶,并从中选择链表长度相对更短的桶插入呢?


问题3:如果每次选择哈希映射的桶时,随机D次呢?

答案:log log N / log D + 1


对比上述两个结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值