1. 程式人生 > 其它 >圖文詳解兩種演算法:深度優先遍歷(DFS)和廣度優先遍歷(BFS)

圖文詳解兩種演算法:深度優先遍歷(DFS)和廣度優先遍歷(BFS)

前言
深度優先遍歷(Depth First Search, 簡稱 DFS) 與廣度優先遍歷(Breath First Search)是圖論中兩種非常重要的演算法,生產上廣泛用於拓撲排序,尋路(走迷宮),搜尋引擎,爬蟲等,也頻繁出現在 leetcode,高頻面試題中。本文將會從以下幾個方面來講述深度優先遍歷,廣度優先遍歷,相信大家看了肯定會有收穫。

  • 深度優先遍歷,廣度優先遍歷簡介
  • 習題演練
  • DFS,BFS 在搜尋引擎中的應用

深度優先遍歷,廣度優先遍歷簡介
深度優先遍歷
主要思路是從圖中一個未訪問的頂點 V 開始,沿著一條路一直走到底,然後從這條路盡頭的節點回退到上一個節點,再從另一條路開始走到底...,不斷遞迴重複此過程,直到所有的頂點都遍歷完成,它的特點是不撞南牆不回頭,先走完一條路,再換一條路繼續走。

樹是圖的一種特例(連通無環的圖就是樹),接下來我們來看看樹用深度優先遍歷該怎麼遍歷。

郭慕榮部落格園