現在、私のハッシュテーブルは、ハッシュテーブルに挿入されたすべての要素の数を数えています。このカウントとハッシュ テーブルの合計サイズを使用して負荷率を計算し、70% 程度に達したら再ハッシュします。
挿入された要素をすべてではなく、空のスロットを埋めるだけでカウントする必要があるのではないかと考えていました。私が使用している衝突方法は、個別の連鎖です。要素の負荷は増加し続けますが、いくつかの衝突が発生する可能性がある場合は、ハッシュ テーブルに多くの空のスロットが残ります。
あなたはおそらく、これほど多くの衝突が発生した場合、最適なハッシュ方法を使用していないのではないかと考えているでしょう。しかし、それはポイントではありません。私は既知のハッシュ アルゴリズムの 1 つを使用しています。サンプル データで 3 つのアルゴリズムをテストし、衝突が少ないアルゴリズムを選択しました。
私の疑問はまだ残っています。挿入されたすべての要素を数え続けるべきですか、それともハッシュ テーブルの空のスロットを埋める要素だけを数えるべきですか?