BFS的複雜度被認爲是線性的,即O(V + E),但是有向完整圖中邊的總數是V *(V-1),它是圖形。那麼BFS會花費O(V^2)時間遍歷完整的圖表嗎?廣度優先搜索完整圖的複雜度是多少?
回答
是的,我假設你已經做了數學。
O(V+E) = O(V + V*(V-1))
= O(V + V*V - V)
= O(V*V)
給出這個結果,我們可以得出結論:使用鄰接表的最壞情況BFS不是線性的,而是二次的? –
@UttakarshTikku它在算法的輸入大小上是線性的,這是頂點數量的二次方。 –
非常感謝!這非常有幫助! –
BFS運行在O(V + E)
時間提供的圖表由鄰接表結構表示。
在密集的情況下,你會看到答案將是O(V+E)
。 (表示是鄰接表)。
在鄰接矩陣的情況下O(V^2)
。
無論圖表如何,您總是會先覆蓋起點的鄰居。然後再爲鄰居重複這個。所以你可以看到它總是需要遍歷O(V+E)
時間,但這是表示使鄰接矩陣變得困難。所以它將是O(V^2)
。
這是因爲我們希望找到每一次什麼是相鄰的給定的頂點「U」,我們遍歷整個數組adjmatrix[u]
,這是長度的邊緣| V |
我在這裏得到的是這裏的頂點數和邊數的關係。完整圖中的邊數是頂點數的函數,對於完整的有向圖精確爲V *(V-1)。 –
是的,但表示很重要。這就是我所說的。 – coderredoc
- 1. 時間和空間複雜度的廣度優先搜索
- 2. 廣度優先搜索/深度優先搜索還是定向圖?
- 3. 廣度優先搜索生成的節點數量是多少?
- 4. 廣度優先搜索 - Java
- 5. 廣度優先搜索
- 6. 廣度優先搜索java.lang.NullPointerException
- 7. Java廣度優先搜索?
- 8. 廣度優先搜索和深度優先搜索
- 9. 深度優先搜索和廣度優先搜索瞭解
- 10. 深度或廣度優先搜索?
- 11. 優先深度優先搜索廣度優先搜索或反之亦然
- 12. 實現A * - 搜索作爲廣度優先搜索/深度優先搜索
- 13. 廣度優先與深度優先搜索的輸入/輸出
- 14. 廣度優先或深度優先搜索
- 15. F#中的廣度優先搜索(BFS)
- 16. 最差情況時間深度優先搜索的複雜度
- 17. 將廣度優先搜索轉換爲深度優先使用Java搜索
- 18. 迭代加深深度優先搜索比深度優先搜索更高的時間複雜度?
- 19. 功能廣度優先搜索
- 20. BFS代碼(廣度優先搜索)
- 21. 並行廣度優先搜索
- 22. 如何實現廣度優先搜索?
- 23. 廣度優先搜索 - 標準Python庫
- 24. 最短路徑 - 廣度優先搜索
- 25. 廣度優先搜索解決難題
- 26. 廣度優先搜索使用陣列
- 27. 廣度優先搜索練習 - AI
- 28. 廣度優先搜索錯誤輸出
- 29. 廣度優先搜索算法
- 30. 廣度優先搜索不起作用
查看答案。抱歉的不便。我沒有看到algirthm是BFS。檢查我的答案。 – coderredoc