2014-09-13 93 views
0

爲什麼haskey的時間複雜度是O(1)。爲了找到一個密鑰,它必須遍歷列表中的所有元素,所以它爲什麼是O(1)
contains數組列表的方法的時間複雜度散列表和陣列列表的時間複雜度

+1

爲什麼不嘗試谷歌搜索! – 2014-09-13 19:52:50

+0

沒有得到滿意的答案 – user3856587 2014-09-13 19:53:36

+0

看看這個答案:http://stackoverflow.com/questions/4100677/is-there-a-comprehensive-big-o-listing-of-java-data-structures/25338144#25338144 – nem035 2014-09-13 19:55:47

回答

3

散列表不是列表。它是一種專門針對常見情況下的O(1)查找而設計的數據結構(最壞情況的查找實際上是O(n))。它通過散列的概念實現了這一點,該散列是從密鑰內容派生的數字,用於直接計算數組中密鑰的索引。

ArrayList只是一個下面的數組,因此contains就是您所期望的線性搜索結構。