Kruskal算法:
不斷地選擇未被選中的邊中權重最輕且不會形成環的一條。
簡單的理解:
不停地循環,每一次都尋找兩個頂點,這兩個頂點不在同一個真子集里,且邊上的權值最小。
把找到的這兩個頂點聯合起來。
初始時,每個頂點各自屬於自己的子集合,共n個子集合。
每一步操作,都會將兩個子集合融合成一個,進而減少一個子集合。
結束時,所有的頂點都在同一個子集合里,這個子集合就是最小生成樹。
例子:

偽代碼:

Prim算法:
G=(V,E),S是V的真子集,如果u在S中,v在V-S中,且(u,v)是圖的一條邊,稱之為特殊邊,且(u,v)是所有特殊邊中最短的,那么,(u,v)這條邊一定在最小生成樹中。
任意指定一個頂點作為起始點,放在S中。
每一步將最短的特殊邊放入S中,需要n-1步,即可把所有的其他的點放入S中。算法結束。
例子:由節點A開始。

偽代碼:

