テーブル ルックアップを行う必要がある C 言語アプリがあります。
エントリは文字列です。すべてはランタイムの開始時に認識されます。テーブルは一度初期化され、その後何度も検索されます。テーブルは変更される可能性がありますが、基本的にはアプリが最初からやり直すのと同じです。これは、完全なハッシュを使用できることを意味すると思いますか? ハッシュテーブルの初期化は 1 回だけなので、多少時間がかかっても問題ありません。
エントリ数は 3 ~ 100,000 で、それぞれが一意であり、80% のケースではエントリ数が 100 未満であると推定されます。そのような場合、単純な単純なルックアップは「十分に高速」です。(==誰も文句を言っていない)
ただし、10,000 以上のエントリがある場合、素朴なアプローチのルックアップ速度は受け入れられません。C で文字列のハッシュテーブル ベースの優れたルックアップ パフォーマンスを提供するための適切なアプローチは何ですか? Boost/etc のようなサードパーティの商用ライブラリを持っていないとします。どのハッシュ アルゴリズムを使用すればよいですか? どうやって決めるの?