0

単純な整数ハッシュ テーブル クラスを作成しようとしています。いっぱいになるとサイズが2倍になるという意味で、ダイナミックにしたいのです。適切に機能するハッシュ関数が見つからないようです。次の関数で二重ハッシュを試みました (しかし、うまくいきませんでした): h(k)=(x%7 +1+ k*(x%5))%(Table_Size)

私が見逃している良いものはありますか?

4

1 に答える 1

0

単純な整数の場合は、数値自体をハッシュしないでください (そうすることで新しいプロパティが生成されるわけではありません)。代わりに、ハッシュ テーブルのサイズに素数を使用します (これにより、エントリが均一に分散されます)。 ..一般に、ハッシュテーブルのサイズに素数を使用することは、何をどのようにハッシュしているかに関係なく、良い習慣です。

チェックアウト

http://planetmath.org/GoodHashTablePrimes.html

テーブルが大きくなるにつれて使用するのに適したサイズのリストについては、 を参照してください。

于 2013-01-09T19:45:02.640 に答える