1. 程式人生 > >DFS-深度優先搜索與BFS-廣度優先搜索

DFS-深度優先搜索與BFS-廣度優先搜索

first 隊列 dfs- htm 時間 single 遞歸 depth 一個

1.DFS

DFS是一個遞歸過程。(類似於二叉樹的前序遍歷)

參考:深度優先搜索(Depth-First-Search)精髓

2.BFS

可以理解為按遍歷,借助隊列結構來實現。(類似於二叉樹的層次遍歷)

參考:[數據結構]廣度優先搜索算法(Breadth-First-Search,BFS)

圖的DFS與BFS

  • 圖的深度優先搜索算法和廣度優先搜索算法在時間復雜度上是一樣的。
  • 深度優先更適合目標比較明確,以找到目標為目的的情況。
  • 廣度優先更適合在不斷擴大遍歷範圍時找到相對最優解的情況。轉自此文

兩種算法的具體講解可參考:

數據結構和算法總結(一):廣度優先搜索BFS和深度優先搜索DFS

圖的遍歷之 深度優先搜索和廣度優先搜索

DFS-深度優先搜索與BFS-廣度優先搜索