1 ~ 15 バイトの範囲のバイト シーケンス (文字列) でキーを検索するハッシュ テーブルを作成したいと考えています。
整数値を格納したいので、ハッシュ用の配列で十分だと思います。特定のキーが配列にインデックスを与えるようなハッシュ関数を構築する方法を概念化するのに苦労しています。
どんな援助でも大歓迎です。
ハッシュ内のエントリの最大数は、4081*15 + 4081*14 + ... 4081 = 4081((15*(16))/2) = 489720 です。
たとえば、次のようになります。
int table[489720];
int lookup(unsigned char *key)
{
int index = hash(key);
return table[index];
}
ハッシュ関数の適切な選択肢は何ですか? または、ハッシュ関数を構築するにはどうすればよいですか?
ありがとう。