它是O(n log n)還是O(log n)?使用二進制搜索的循環雙向鏈表的複雜性是什麼?
1
A
回答
4
我想說它不是O(log n),因爲二進制搜索在鏈接列表上不能很好地工作 - 您沒有高效的隨機訪問。
如果你真的試圖做二分搜索,它會花費O(log n)步,但在每一步中,你需要一個O(n)遍歷來訪問所需的元素。所以你可以說它是O(nlog(n))。
你應該做一個O(n)線性搜索來代替。
+2
您沒有*任何*隨機存取;所有訪問都是線性的。但是,是的,我同意你的回答。 – 2010-08-18 15:54:11
0
二進制搜索需要隨機訪問,因此它不可能在鏈接列表中。你堅持使用O(n)線性搜索。
相關問題
- 1. 雙循環的複雜性
- 2. 使用鏈接列表的二進制堆的複雜性
- 3. 雙向搜索的時間複雜度
- 4. 從排序的雙向鏈表中製作二進制搜索樹
- 5. 時間這雙循環的複雜性
- 6. 二叉樹搜索的複雜性
- 7. 在WebGL中使用for循環進行二進制搜索
- 8. Javascript:將二進制搜索樹轉換爲雙向鏈接列表的算法
- 9. 複雜度O(1)的循環雙鏈表如何以及爲什麼串聯?
- 10. 使用O(logN)中的HashMap在節點的鏈表上進行二進制搜索時間複雜度
- 11. 理解雙向鏈表循環鏈表
- 12. 雙向鏈表循環鏈表
- 13. 在排序的std :: list中搜索的複雜性是什麼?
- 14. 二進制搜索是/是二進制搜索貪婪算法?
- 15. 插入二進制搜索樹(C)使用for循環
- 16. 嵌套循環這個函數的複雜性是什麼?
- 17. 這個嵌套三重for循環的複雜性是什麼?
- 18. N元樹插入和搜索的複雜性是什麼?
- 19. 循環雙向鏈表和尾指針雙向鏈表
- 20. 使用二進制搜索
- 21. 二進制搜索未排序數組的時間複雜度
- 22. 二進制搜索的最差情況時間複雜度
- 23. 爲什麼二進制搜索樹?
- 24. 雙向使用Webclient進行二進制
- 25. 線性搜索或二進制搜索或二叉搜索樹
- 26. 什麼時候使用二進制搜索樹中的預訂?
- 27. 在二進制搜索中搜索排序數組的複雜度較低
- 28. 雙刪除(?)在二進制搜索樹
- 29. 線性和二進制搜索列表使用數組和鏈表
- 30. 搜索二進制表
@Frustrated - 你爲什麼用'homework'標記這個?賽義夫說[這裏](http://stackoverflow.com/questions/2326831/a-list-of-java-errors-and-warnings/2326876#2326876),他正在開發Java到阿拉伯語的翻譯,不完全是學生級任務。 – 2010-08-18 15:59:00
@reemrevnivek:我把它標記爲'家庭作業',因爲它看起來非常像一個家庭作業問題:沒有問題的背景,沒有解釋*爲什麼*他想使用循環雙向鏈表進行二進制搜索,它*看起來*像我收到並看到別人收到的家庭作業問題。 @Saif:對不起,如果它不是作業,但它有它的外觀。 – FrustratedWithFormsDesigner 2010-08-18 17:03:14
@Frustrated:多數民衆贊成。其實我很好奇,沒有想到它,我已經被教過(不是一個家庭作業,雖然:P),它是低效率的,但我想爲什麼會這樣,如果我使用緩存指針,我不好意思通過雖然。 – Saif 2010-08-18 17:43:53