0

配列として実装されたサイズ 11 のハッシュ テーブルがあります。ダブル ハッシュ手法を使用しようとしています。私はすでに私の数のほとんどをやった。私のハッシュ関数は次のとおりです。

h1 = key mod 11
h2 = 3*key mod 4

これによりh(k,i) = k mod 11 + i(k * 3 mod 4)、i = 0、1、2、3、...

すでにスロット 0、1、4、8、9、および 10 が埋められています。19 を挿入しようとしています。これは、19 をハッシュした結果です。

1st time: 8  <-- collision 
2nd time: 9  <-- collision 
3rd time: 10 <-- collision 
4th time: 11 <--- well there is no index 11 table ends with index 10

私は何をすべきか?

また、「テーブルに 11 個のスロットを持たせてください」と言うとき、それはハッシュ テーブルに 0 から 10 までの使用可能なスロットがあるということですか?

4

1 に答える 1

3

この変更により、間違ったハッシュ テーブル インデックスの計算が修正されます。

h(k,i) = (key + i*(key*3 mod 4)) mod 11
于 2012-10-30T05:15:12.490 に答える