廣度優先搜索算法和深度優先算法的對比


一. 關於圖的小知識


  1. 圖的類型

    圖的類型一般分為有向圖、連通圖和加權圖

  2. 圖的算法包括:

  • 圖的搜索算法:圖的搜索指的就是從圖的某一節點開始,通過邊到達不同的節點,最終找到目標節點的過程。根據搜索的順序不同,圖的搜索算法可分為“廣度優先搜索”和“深度優先搜索”兩種。

  • 圖的最短路徑問題:最短路徑問題就是要在兩個節點的所有路徑中,找到一條所經過的邊的權重總和最小的路徑。相關算法有“貝爾曼-福特算法”,“狄克斯特拉算法”和“A* 算法”三種。


二. 廣度優先搜索和深度優先搜索的對比


廣度優先搜索算法和深度優先算法的不同在於選取候補節點作為下一個節點的基准不同,廣度優先算法以隊列的形式存放候補節點,而深度優先以棧的形式存放候補節點。簡單來說廣度優先搜索選擇的是最早成為候補的節點,因為節點離起點越近就越早成為候補,所以會從離起點近的地方開始按順序搜索;而深度優先搜索選擇的則是最新成為候補的節點,所以會一路往下,沿着新發現的路徑不斷深入搜索。

我們將起點設置為A,終點設置為G,以下紅色代表正在遍歷的當前節點,而粉色表示在棧或隊列中的候補節點,黃色則表示已經遍歷過的節點,最后藍色表示未遍歷且不在隊列或棧的節點>我們將起點設置為A,終點設置為G,以下紅色代表正在遍歷的當前節點,而粉色表示在棧或隊列中的候補節點,黃色則表示已經遍歷過的節點,最后藍色表示未遍歷且不在隊列或棧的節點

  • 廣度優先算法(放入的順序為BCD)

image

  • 深度優先算法(放入的順序為DCB)

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM