0
文字列をとり、動的配列の範囲の値、基本的に動的ハッシュテーブルの値を返す関数を作成しようとしていますが、開始、私はベクトルがダウンしているが、どのハッシュ関数がおそらく実行時のパフォーマンスに良いのかわからない - 私は速く、衝突なしで、それで、候補者の上でいくつかのリソースを共有できるなら大好きだ実装またはアルゴリズムHashtable/Map:where to start
ありがとう。
文字列をとり、動的配列の範囲の値、基本的に動的ハッシュテーブルの値を返す関数を作成しようとしていますが、開始、私はベクトルがダウンしているが、どのハッシュ関数がおそらく実行時のパフォーマンスに良いのかわからない - 私は速く、衝突なしで、それで、候補者の上でいくつかのリソースを共有できるなら大好きだ実装またはアルゴリズムHashtable/Map:where to start
ありがとう。
まあ、考慮すべき要素がたくさんあります。 1つはハッシュテーブルのサイズです。ハッシュテーブルはコリジョンがない場合にのみ有効で、素数が大きいほど大きな値になりますが、メモリが大量に消費される場合は、どれくらいのデータが必要であるか考慮する必要があります。あなたの素数が低い場合、同じ事件が起こる、あなたはハッシュを作り直す力です。
コリジョンを防ぐために気づいた2つの解決策があります。 コリジョンが発生するたびに、別のハッシュまたは配列リストをハッシュの内部に作成できます。
また、いつでも、その情報をハッシュテーブルの次の空き領域に配置しようとすることもできます。
これは動的なので、文字列を受け取り値を返す良いハッシュ関数が必要です。 – Whiteclaws
さて、私はまだあなたが選ぶことができる2つのオプションを与えた、私は第1をお勧めします。 colisionが起こるたびに、その場所にハッシュを作成します。言い換えれば、 "hello"と "world"という単語が衝突した場合、その場所に2番目のハッシュが作成されます。たとえば、文字列の一部のように使用されます。私が試してみることのできるもう一つのことは、文字列の代わりにあなたの鍵にsha256を使うことです。 –