関心領域は文字列一致です。このような構造があるとします。完全なハッシュ関数を設計するにはどうしたらいいですか?
typedef struct
{
char *name,
int (*function)();
} StringArray
StringArray s[] =
{
{"George", func1},
{"Paul", func2},
{"Ringo", func3},
{"John", func4},
{"", NULL} /* End of list */
}
配列には固定数の文字列があります。これらは例のようにハードコードされています。 テーブルが変更された場合、ハッシュ関数の品質を再評価する必要があります。
文字列にハッシュ関数を適用し、文字列が配列に一致する場合は、 関数を呼び出します。これには完全なハッシュ関数が必要です。衝突は許されません。ハッシュを要求する目的は、ルックアップでO(1)のパフォーマンスを得ることです。
これを行うための機能を設計するためにどのようなアイデアがありますか?
悪私はスパムがあなたはそれが –
@Mitchを意味考えるものを意味しないと思う:あなたはこれを意味するか簡単にするためにGoogleで検索することができ、質問ありますか? –
@ j_random_hacker:しました。しかし、それは遅く、スパムではありません。 –