藉助可視化工具分析一哈
https://visualgo.net
Kruskal(克魯斯卡爾)算法
根據我的理解,就是每次選擇一條權重最小的邊,且加入這條邊後不構成環路,最後組成一棵樹
以下圖的情形爲例
- 初始狀態
- 節點1 、 2之間權重最小,加入這條邊
- 節點0 、1 與節點0 、 2之間權重都爲4,加入其中一條
-
首先嚐試將0 2 這條邊加入,但是此時會構成迴路
選擇將權重爲6的邊加入
- 將權重爲6的節點加入,此時每個節點都訪問到了,最小生成樹構成。
Prime算法
還是以上面的情形爲例
- 我們一0爲起始點,節點1 爲節點0最少代價能到達的節點,將節點1加入
- 此時節點2爲節0 或1 節點經過最少代價能到達的節點,將節點二2加入
- 此時節點0 與 節點2 之間權重最小,但是會構成迴路;選擇節點3加入
- 加入節點4,所有節點都已經到達,構成樹
- 加入節點4,所有節點都已經到達,構成樹
放一個僞代碼