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