boost:hashを使うことはできません。なぜなら私はCに固執する必要があり、C++を使うことができないからです。Cの最小ハッシュ関数?
しかし、それらの検索が最も高速になるように、大きな(10K〜100k)のトークン文字列(5〜40バイト長)をハッシュする必要があります。
MD5、SHA1などの長いハッシュ関数は単純なタスクでは重すぎるように見えますが、私は暗号化を行っていません。さらに、ストレージとコンピューティングのコストもあります。
したがって、私の質問:
最も実用的な例には衝突防止を保証する最も簡単なハッシュアルゴリズムであるかもしれない何を。
ハッシュ値に使用するビット数はいくつですか?私は32ビットシステム用に開発中です。 Perl/Pythonのハッシュアルゴリズムも32ビットハッシュを使用していますか?あるいは、私は64にジャンプしなければならないのですか?
一般的なスクリプト言語でのハッシュテーブルの実装について:実装は衝突をチェックしますか、またはその部分を完全に回避できますか?
次のページがCで実装汎用ハッシュ関数のいくつかの実装(および他の多くの言語)を有する:http://partow.net/ programming/hashfunctions/index.html –
GLibの使用を検討しましたか? https://developer.gnome.org/glib/2.46/glib-Hash-Tables.html –