何百万ものアイテム(おそらく約10m)の静的な(ランタイムではない)完全なハッシュを作成できる優れたライブラリ(ウィンドウ)を知っている人はいますか?
私は基本的に何百万もの文字列のセットを持っており、文字列が私のセットに含まれているかどうかを最小限のO(1)で知りたいです-それだけです。文字列を実際に検索するのに必要ありません。文字列の背後に値はありません(存在することを除いて)。
何百万ものアイテム(おそらく約10m)の静的な(ランタイムではない)完全なハッシュを作成できる優れたライブラリ(ウィンドウ)を知っている人はいますか?
私は基本的に何百万もの文字列のセットを持っており、文字列が私のセットに含まれているかどうかを最小限のO(1)で知りたいです-それだけです。文字列を実際に検索するのに必要ありません。文字列の背後に値はありません(存在することを除いて)。
試す:
perfectとgperfは、Cコード形式のテーブルを生成します。これはWindowsで正常に機能するはずです。CMPHの出力が何であるかわかりません。
CMPHには次のようなコメントがあります。
gperfは、小さなキーのセットに対して非常に高速な完全なハッシュ関数を作成するために考案され、CMPHライブラリは、非常に大きなキーのセットに対して最小限の完全なハッシュ関数を作成するために考案されたため、少し異なります。
それが正しければ、ミリオンキーのケースでは、おそらくgperfよりもCMPHを選択する必要があります。ジェンキンスのパーフェクトと比べてどうなのかわかりません。3つすべてを試して、それらを相互にベンチマークするのは簡単なはずです。
ブルームフィルターはあなたが望むことをします、私はそれらを持っているライブラリを探し回るか、あなたが自分でそれを書くことを試みることができます。