thisによると、ハッシュテーブル内の検索の時間計算量は O(1) です。
ただし、衝突が発生した場合、明らかにこれは O(1) + 何かになるはずです。
私の質問は:
あなたが言う時
get(someKey)
ハッシュテーブルから、ハッシュ関数が someKey に適用され、データがその場所から直接取得されます。
しかし、衝突の解決に分離チェーンが使用されていると想像してください。そして、ハッシュ関数が適用された後、 someKey と someOtherKey が同じ出力を持つと想像してください。それが値「25」であるとします。
だから私が言うとき
get(someKey)
ロケーション「25」からデータを取得します。これにより、O(1) になります。偉大な。
しかし、私が言うとき
get(someOtherKey)
someOtherKeyがsomeKeyの場所にリンクされるようになりました。
ハッシュがsomeOtherKeyに適用されると、25 になります。
必要な値を取得するにはどうすればよいですか? 内部構造は何ですか?他のテーブルはありますか?アルゴリズムの流れは?すべての衝突を保存するための他のテーブルはありますか?
ありがとうございました。私の質問が明確であることを願っています!