免責事項:私はこことStackoverflowで同様の聞こえる質問があることを知っています。しかし、それらはすべて衝突についてであり、それは私が求めているものではありません。
私の質問は次のとおりです。なぜそもそも衝突のないルックアップなのO(1)
ですか?
私がこのハッシュテーブルを持っているとしましょう:
Hash Content
-------------
ghdjg Data1
hgdzs Data2
eruit Data3
xcnvb Data4
mkwer Data5
rtzww Data6
今、私はk
ハッシュ関数h(k)
が与えるキーを探していますh(k) = mkwer
。しかし、ルックアップはハッシュmkwer
が5の位置にあることをどのように「知っている」のでしょうか。それO(n)
を見つけるためにすべてのキーをスクロールする必要がないのはなぜですか?ハッシュは、実際のハードウェアアドレスではあり得ません。データを移動する能力を失うからです。そして、私の知る限りでは、ハッシュテーブルはハッシュでソートされていません(そうであったとしても、検索にも時間がかかりますO(log n)
)?
ハッシュを知ることは、テーブル内の正しい場所を見つけるのにどのように役立ちますか?