1

その背後にある「理論」を理解しています。配列内の位置が「hashFuction(element) mod array.length」を実行した結果であり、リストを使用して衝突を管理したリンク リストの型または配列です。

私の質問は、実際に配列に最適な長さはどれくらいですか? 最大 20,000 ノードのグラフを使用しています。しかし、20,000 要素の配列では、すでに非効率的だと思います。

Xの長さの配列を作成することを考えていましたが、それが多くの要素に達した場合、すべての要素を2Xの配列にコピーするようなことをしますが、問題はそれらが要素に対して同じインデックスを持たないことであり、私は実際に「すべての配列をコピーします。要素ごとにハッシュ関数を適用して新しい場所を見つける必要があり、10,000要素の配列について話している場合、非常に遅くなります。

文法の間違いで申し訳ありません。英語は私の母国語ではありません。

4

1 に答える 1

0

あなたが説明したことは本質的に連鎖ハッシュテーブルであり、あなたの質問はスペース効率が良いようにそのテーブルのサイズを調整する方法に要約されます。ソリューションを過剰に設計していると思います。代わりに、選択したプログラミング言語でハッシュ テーブルの標準的な市販の実装を使用してください。あなたが思いついたものよりもはるかに最適化されている可能性が高く、おそらくバグがはるかに少ないでしょう.

お役に立てれば!

于 2014-06-01T20:00:08.443 に答える