有沒有人知道這個問題的答案?帶有〜100萬個鍵的HashMap,仍然是恆定時間?
回答
是的。要搜索一個哈希表擁有100萬個項目添加到它,你這樣做:
1)計算,你要尋找的對象的哈希。
2)發現,桶
3)搜索通過桶的項目。
(1)是獨立於哈希映射或數在它的項目的大小。 (2)是O(1),假設標準哈希映射實現爲鏈表的數組。
(3)需要與桶中物品數量相關的時間量,該時間量應該近似(散列加入的物品數量)/(桶數量)。這部分將從O(1)開始,但隨着項目數量開始大大超過桶的數量,緩慢增加。
對於幾乎任何目的,哈希地圖也算是對插入和取出O(1),即使有非常大的數據集,只要你以一個足夠大的數桶。
是的,還是固定的時間(攤銷)。
是什麼攤銷平均 – SuperString 2009-12-23 15:56:14
理論上...內存分頁可能是一個問題。不太可能,但可能。 – 2009-12-23 15:56:32
攤銷意味着某些單獨的插入可能需要比其他插入更長的時間,但平均時間保持不變。 – 2009-12-23 15:57:00
- 1. 爲什麼hashmap查找是O(1)即恆定時間?
- 2. 四元數仍然有萬向鎖
- 3. 喬達LocalDate - 仍然是一個瞬間?
- 4. Clojure rseq在恆定時間?
- 5. 每個節點都有恆定時間的C++樹
- 6. 是否arr = [val] * N具有班輪或恆定時間?
- 7. CAFilter仍然是一個私有API嗎?
- 8. 是否仍然有效?
- 9. Sharekit是否仍然有效?
- 10. 所有時間即使在卸載時仍然有效服務
- 11. 值的恆定時間分組
- 12. Uploadify卡住了100%,但仍然上傳
- 13. Java SQL 100萬行
- 14. 線程仍然需要很長時間
- 15. 內存訪問不是恆定的時間
- 16. 在刪除100萬個密鑰時讀取超時異常
- 17. 具有鄰接列表的恆定時間操作
- 18. 帶有字符串鍵的HashMap真的比Trie具有更低的時間複雜度嗎?
- 19. CSS圖像寬度100%,但仍然有一些背景
- 20. 設置格至100%仍然沒有工作
- 21. 製作100%身高的網站,最小身高:100%;當我滾動時仍然沒有顯示
- 22. 我需要一個具有100萬條目的csv文件
- 23. 類是已定義,但它仍然說類沒有定義Python
- 24. 數組訪問總是恆定時間/ O(1)?
- 25. 其他鍵仍然按下時彈起鍵盤彈出
- 26. 地圖100萬串在它
- 27. PHP命名空間的混亂 - 關鍵字v恆定值
- 28. 如何判斷給定的hWnd是否仍然有效?
- 29. 遍歷其排序鍵是一個HashMap
- 30. 如何表現了100萬個Hashtable和100項哈希表
+1好答案,點(3)很重要 – Paolo 2009-12-23 16:10:21
並且假設散列是均勻分佈的爲您的數據集。 – 2009-12-23 16:19:23
有沒有辦法增加C++中桶的數量,以便每個桶只有1個元素? – SuperString 2009-12-23 22:30:53