BFS和DFS的用途是什麼? - 優文庫
文章推薦指數: 80 %
BFS和DFS是圖形搜索算法,可用於各種不同的目的。
這兩種搜索技術的一個常見應用是識別從給定起始節點可到達的所有節點。
例如,假設您有一組 ...
首頁
問答
BFS和DFS的用途是什麼?
Q
BFS和DFS的用途是什麼?
algorithm
graph
depth-first-search
breadth-first-search
2013-02-06
451views
7likes
7
我已經瞭解了這些算法是如何工作的,但是它們用於什麼?BFS和DFS的用途是什麼?
難道我們用它們來:
找到一個圖中的某個節點或
找到最短路徑或
找到一個週期的圖形
?
他們都只是訪問所有的節點,並標記他們訪問過,我不明白這一點。
我有點迷失在這裏,我正在學習。
來源
2013-02-06
Nayana
+6
搜索算法只是一個工具,您可以用來解決其他問題。
這就像問什麼是用於添加。
–
A
回答
10
BFS和DFS是圖形搜索算法,可用於各種不同的目的。
這兩種搜索技術的一個常見應用是識別從給定起始節點可到達的所有節點。
例如,假設您有一組計算機,每臺計算機都連接到少數其他計算機。
通過從給定節點運行BFS或DFS,您將發現網絡中原始計算機可以直接或間接與之通話的所有其他計算機。
這些是標記回來的電腦。
BFS專門用於查找未加權圖中兩個節點之間的最短路徑。
例如,假設您想要將數據包從網絡中的一臺計算機發送到另一臺計算機,並且計算機之間沒有直接連接。
應該沿着什麼路線發送數據包,使其儘快到達目的地?如果你運行一個BFS,並且在每次迭代時每個節點都存儲一個指向其「父」節點的指針,那麼你最終將找到從開始節點到圖中每個其他節點的路由,從而最小化必須遍歷的鏈路的數量到達目標計算機。
DFS通常用作更復雜算法的子程序。
例如,Tarjan用於計算強連接組件的算法基於深度優先搜索。
許多優化的編譯器技術通過適當構建的圖形運行DFS,以確定應用特定系列操作的順序。
深度優先搜索也可用於迷宮生成:通過獲取節點網格並將每個節點鏈接到它的鄰居,您可以構建代表網格的圖形。
在該圖上運行隨機深度優先搜索,然後生成一個只有一個解決方案的迷宮。
這絕不是一個詳盡的列表。
這些算法具有各種各樣的應用程序,當您開始探索更高級的算法時,您經常會發現自己依賴DFS和BFS作爲構建塊。
它與排序相似-排序本身並不是那麼有趣,但能夠排序值列表作爲更復雜算法中的子程序非常有用。
希望這會有所幫助!
來源
2013-02-0619:10:13
templatetypedef
相關問題
1.PythonDFS和BFS
2.爲什麼DFS和BFS的複雜性不是O(V)?
3.BFS和DFS的鄰接表
4.在Java中的BFS和DFS和使圖
5.通過使用DFS,BFS,A*
6.在CLRS中實現DFS和BFS實現灰色的目的是什麼?
7.內存使用在迭代式深化DFS(ID-DFS)和BFS
8.BFS和DFS之間的區別
9.解釋BFS和DFS在回溯
10.JavaScript-onlyDOM樹遍歷-DFS和BFS?
11.爲什麼BFS比DFS更適合並行化?
12.爲什麼選擇DFS而不是BFS查找圖中的循環
13.FolderInformation和FileInformation的用途是什麼?
14.toolz.thread_first()和toolz.thread_last()的用途是什麼?
15._IOR_BAD和_IOW_BAD的用途是什麼?
16.glTexParameterIiv和glTexParameterIuiv的用途是什麼?
17.HashMap.Entry.recordAccess和recordRemoval的用途是什麼?
18.minOccurs,nillable和restriction的用途是什麼?
19.Windows.Forms.Form.HelpButton的用途和約定是什麼?
20.GL_COLOR_BUFFER_BIT和GL_DEPTH_BUFFER_BIT的用途是什麼?
21.webpack[hash]和[chunkhash]的用途是什麼?
22.CGContextSaveGState和CGContextRestoreGState的用途是什麼?
23.Content.xml和Fragment.xml的用途是什麼
24.使用BFS/DFS解決編程任務
25.如何表示用於DFS/BFS
26.layout.xml的用途是什麼?
27.PhoneGap的用途是什麼?
28.AtomicReferenceArray的用途是什麼?
29.felix.xml的用途是什麼?
30.WSDL的用途是什麼?
最新問題
1.當啓動vscode我的SO非常慢
2.BotAuth與Azure表存儲錯誤
3.試圖在MAP中運行函數
4.指定具有絕對路徑的庫的GCC行爲是什麼
5.奇怪填充用的UIButton
6.KafkaStreams:使用相同的`application.id`來消費多個主題
7.同時具有自定義功能和任務窗格
8.Squarespace:在移動設備上只
9.XamarinAndroidRelativeLayout設計器設置
10.製作一個黑暗的崩潰的導航欄視覺上不同
相關問題
1.PythonDFS和BFS
2.爲什麼DFS和BFS的複雜性不是O(V)?
3.BFS和DFS的鄰接表
4.在Java中的BFS和DFS和使圖
5.通過使用DFS,BFS,A*
6.在CLRS中實現DFS和BFS實現灰色的目的是什麼?
7.內存使用在迭代式深化DFS(ID-DFS)和BFS
8.BFS和DFS之間的區別
9.解釋BFS和DFS在回溯
10.JavaScript-onlyDOM樹遍歷-DFS和BFS?
延伸文章資訊
- 1dfs與bfs的簡單總結及應用 - 台部落
dfs與bfs的簡單總結及應用 ... (1):深度優先搜索(Depth-First-Search)是搜索算法的一種。是沿着樹的深度遍歷樹的節點,儘可能深的搜索樹的分支。當節點v ...
- 2圖的遍歷:DFS和BFS演算法- IT閱讀
以上是最基本的dfs演算法實現,事實上,程式碼結構絕不是一成不變的。 例如,應用dfs求一串元素的所有可能的排列,抽象出來的圖的分支就十分龐大。我們不 ...
- 3什么时候使用深度优先搜索(DFS)和广度优先搜索(BFS ...
如果搜索树非常深,则无论如何都需要限制深度优先搜索(DFS)的搜索深度(例如,使用迭代加深)。 但是,这些只是经验法则。 ... 注意提到了BFS和DFS的一些应用场景.
- 4DAY11 - DFS應用 - iT 邦幫忙
DAY11 - DFS應用. 算法與數據結構&力扣例題實戰系列第11 篇. raychang0901. 4 個月前‧ 289 瀏覽. 0. 昨天寫了DFS模板,今天就搭配模板放幾題DFS的例題!!
- 5BFS和DFS的用途是什麼? - 優文庫
BFS和DFS是圖形搜索算法,可用於各種不同的目的。 這兩種搜索技術的一個常見應用是識別從給定起始節點可到達的所有節點。例如,假設您有一組 ...