1

thisによると、ハッシュテーブル内の検索の時間計算量は O(1) です。

ただし、衝突が発生した場合、明らかにこれは O(1) + 何かになるはずです。

私の質問は:

あなたが言う時

get(someKey) 

ハッシュテーブルから、ハッシュ関数が someKey に適用され、データがその場所から直接取得されます。

しかし、衝突の解決に分離チェーンが使用されていると想像してください。そして、ハッシュ関数が適用された後、 someKey と someOtherKey が同じ出力を持つと想像してください。それが値「25」であるとします。

だから私が言うとき

get(someKey)

ロケーション「25」からデータを取得します。これにより、O(1) になります。偉大な。

しかし、私が言うとき

get(someOtherKey) 

someOtherKeyがsomeKeyの場所にリンクされるようになりました。

ハッシュがsomeOtherKeyに適用されると、25 になります。

必要な値を取得するにはどうすればよいですか? 内部構造は何ですか?他のテーブルはありますか?アルゴリズムの流れは?すべての衝突を保存するための他のテーブルはありますか?

ありがとうございました。私の質問が明確であることを願っています!

4

1 に答える 1