0

線形プローブを使用してハッシュテーブルを実装しようとしています。

(キー、値) のペアをハッシュテーブルに挿入する前に、それが半分埋まっているかどうかを確認したいと思います。そうであれば、基になる配列のサイズを 2 倍にする必要があります。

明らかに、それを行うには2つの方法があります。

1 つは、2 倍のサイズの別の配列を作成し、古い配列のすべてのエントリを再ハッシュして、それらを新しい配列に追加することです。次に、古い配列を新しい配列に再バインドします。この方法は実装が簡単ですが、多くのスペースを使用します。

もう 1 つは、配列を 2 倍にして、その場で再ハッシュを行うことです。再ハッシュすると、新しくハッシュされたスロットと古いスロットの両方と衝突が発生する可能性があるため、この方法では実行時間が長くなる可能性があるようです。

どの方法を使用すればよいですか?

4

1 に答える 1

0

2番目のソリューションは、既存のハッシュテーブルをその場で拡張する余地が実際にある場合にのみ、サイズ変更プロセス中にスペースを節約します-大きなハッシュテーブルの場合、その可能性は非常に低いと思います。あなたの最初の解決策。

于 2015-11-22T16:03:10.820 に答える