web-dev-qa-db-ja.com

ハッシュセットのルックアップの複雑さ?

ルックアップ操作OR contains singleの場合、最悪の場合はO(n)になりますか?だから、n要素の場合hashSetO(n^2)になりますか?

38
phoenix

はい、しかしそれは本当に最悪のケースです:HashSetのすべての要素が同じハッシュコード(または同じバケットにつながるハッシュコード)を持っている場合。正しく書き込まれたhashCodeと正規配布されたキーサンプルでは、​​ルックアップはO(1)です。

61
JB Nizet

はい。ただし、HashSetを使用する理由は、非常に低い確率でこの最悪のケースに遭遇することであり、通常、ヒープの保証nlognまたは(自己バランス)TreeSet、または保証n ^ 2よりもはるかに高速です。ソートされていないリストの場合。

6
krasnerocalypse