在其中一篇帖子中,我看到TreeMap
需要O(log(n))
時間來獲取/放置。 有人可以請回答爲什麼它需要O(log(n))
,即使它可以直接通過get/put使用密鑰進行搜索嗎?爲什麼treemap需要O(log(n))時間在Get/put
3
A
回答
6
在TreeMap中,鍵/值條目存儲在紅黑樹中,並且爲了查找樹中是否包含鍵,必須從根開始遍歷它,直到某個路徑達到所需的鑰匙或到達葉子。
包含n個元素的樹的高度爲O(log n)
,因此這是搜索密鑰需要的時間。
+0
但op問爲什麼O(log(n))? – 2014-10-20 05:57:24
+0
@KickButtowski我在原始版本中有一個錯字。現在修復。 – Eran 2014-10-20 06:00:40
+1
我認爲說紅色的黑樹是一種**平衡樹** – 2014-10-20 06:03:39
相關問題
- 1. 爲什麼心跳需要O(log N)時間來傳播
- 2. 爲什麼代碼O(log n)的時間複雜度?
- 3. 爲什麼此循環返回值爲O(n log log n)而不是O(n log n)?
- 4. 是log(n!)= O((log(n))^ 2)?
- 5. 時間複雜度 - O(n^2)到O(n log n)搜索
- 6. 時間複雜度O(N日誌(log n)的)+ N O(L)
- 7. 爲什麼合併排序最差情況運行時間O(n log n)?
- 8. 與log(n)相比,log(n^2)的大O是什麼?
- 9. 爲什麼從O(1)調度程序到O(log N)的CFS?
- 10. 爲什麼排序字符串O(n log n)?
- 11. 你如何看出O(log n)和O(n log n)之間的差異?
- 12. TreeMap需要多少時間?
- 13. 爲什麼這個函數/循環O(log n)而不是O(n)?
- 14. 爲什麼這個循環需要O(2^n)時間複雜度?
- 15. 爲O(n^log n)的碰撞檢測
- 16. O(log(log(n)))) - 競爭意味着什麼?
- 17. 爲什麼pop_heap的複雜性是O(2 * log(N))?
- 18. 爲什麼C++ STL映射容器O(log(n))的複雜性?
- 19. O(n Log n)是多項式時間嗎?
- 20. 這是否解決O(N log(N))時間中的3SUM?
- 21. 大O符號 - O(n日誌(N))對O(的log(n^2))
- 22. 顯示n^2不是O(n * log(n))?
- 23. floor(√2n)的O(log log n)算法?
- 24. Swift中的O(log n)時間中的中間數
- 25. 爲什麼Data.Sequence.reverse O(n)?
- 26. 如何計算O(Log(N))?
- 27. 有沒有算法的時間複雜度爲O(sqrt(n)* log(n))?
- 28. 大O符號 - 爲什麼是O(n^2/4)= O(N^2)
- 29. (log n)/(log(log n))的順序是什麼?
- 30. 圖形搜索O(log(N)(N + M)
您認爲需要多少次操作直接進行搜索? – 2014-10-20 05:57:52
您應該檢查本書中由Treemap類的Javadoc引用的算法,而不是以不適當的格式在此處詢問。 – 2014-10-20 05:58:58