私は、チェーン化されたハッシュ セットを実装する割り当てとして与えられました。
このセットは Linked-List の配列 (ここでは と呼びますA[]
) によって支えられており、2 つの異なる値が同じハッシュ値を取得した場合k
、それらは list に追加されますA[k]
。
構造は、制限された負荷係数 (間隔[0.25, 0.75]
) で問題なく動作します。
指示では、負荷係数を次のように計算するように指示されました。
負荷率=サイズ/容量
ここで、「サイズ」は現在セット内にある要素の総数であり、「容量」は配列の長さ ( A.length
) です。
この場合、この「サイズ」の定義は適切ではなく、 で使用されているリストの数にする必要があると思いますA
。
たとえば、すべての値が同じセルにマップされている場合、たとえば、A[1]
負荷係数に従って再ハッシュすると、A
実際には最初のセルのみが使用されるときにバック配列が大きくなります。
ここで私の論理に誤りがある人はいますか?