圖論 (Graph Theory)

研究圖結構中頂點與邊之間關係的演算法

圖的基礎概念

圖 G 由頂點集合 V 和邊集合 E 組成,記作 G = (V, E)。可分為有向圖、無向圖、加權圖、無權圖。

類型說明範例
有向圖邊有方向網頁連結、道路單行道
無向圖邊無方向社群關係、地鐵線路
加權圖邊有權重道路距離、成本
無權圖邊無權重社交連接

圖的表示方法

鄰接矩陣:二維陣列表示,適合稠密圖。空間 O(V²),查詢邊 O(1)。

鄰接串列:每個頂點維護串列,適合稀疏圖。空間 O(V+E),查詢邊 O(deg(V))。

圖的走訪

廣度優先搜尋 (BFS):使用佇列,逐層走訪。時間 O(V+E),用於無權圖最短路徑。

深度優先搜尋 (DFS):使用堆疊或遞迴,深入走訪。時間 O(V+E),用於拓墣排序、偵測環。

常見圖論演算法

Dijkstra:單源最短路徑,O((V+E) log V)。

Kruskal / Prim:最小生成樹,O(E log V)。

Floyd-Warshall:全源最短路徑,O(V³)。

Ford-Fulkerson:最大流,O(E × maxflow)。

本課程範例

相關連結