1
我实现了基于杜鹃哈希的哈希映射。 我的散列函数采用long类型的任何长度和返回键的值。要将键匹配到我的数组大小n,我需要键%n。布谷鸟哈希:什么是散列函数中检测碰撞的最佳方法?
我正在考虑以下情形:
- 与关键A.key到位置A.key%N
- 查找值B与关键A.key
插入值A所以对于这个例子,我得到了A值的条目,并且没有识别出B值甚至没有被插入。如果我的散列函数为两个不同的值返回相同的键,就会发生这种情况碰到不同的钥匙但碰到相同的位置是没有问题的。
检测这些碰撞的最佳方法是什么? 如果原始值相等,每次插入或搜索项目时都需要检查吗?
我不知道我理解你的问题。你是否在询问如何判断在查找过程中发生碰撞,然后再搜索其他表?还是你问如何处理这种情况:你插入一个与已经在表中的另一个对象具有相同散列码的值? – templatetypedef
如果我插入值A并且搜索值B,但是我的散列函数为值A和值B返回相同的键。如果我搜索B,我想我会得到A的条目。即使B没有被插入。 – Opinel
问题是关于如果散列函数在不同的输入中返回相同的值,然后将键以模数插入数组之前会发生什么。 – Opinel