2016-11-23 66 views
0

我這裏有一個大約雙散列家庭作業和I堆棧上的一個點:雙散列 - HashValues以外的HashTable範圍

我有陣列:17,6,5,8,11,28,14,15 (k)= k mod 11 +(j(k)= k mod 11, h 2(k)= k mod 11, h 2 。+(K MOD 9)

現在我計算hashvalues:

h(17) = k mod 11 = 6 - OK 
h(6) = 6 = collision => 6 + (1 + (6 mod 9) = 12 = NOK 

=>這超出了我的指數範圍,並且每個更高的指數也會更高。如果我將第二個HashFuncion添加到減法中,那麼HashValues將變爲負數 - 也不好。

我在做什麼錯?

感謝 祖扎娜

回答

0

我想你誤解了如何計算的雙哈希索引。該指數應

(H (K)+ J· H (k))的模TableSize

所以公式應與這兩個散列函數的使用將是

((K MOD 11)+ J·(1 +(K MOD 9)))模11

+0

由於很多,這非常有幫助! –