最小生成树
维库,知识与思想的自由文库
|
在一給定的無向圖 G = (V, E) 中,(u, v) 代表連接頂點 u 與頂點 v 的邊(即 的 w(T) 最小,則此 T 為 G 的最小生成樹。 最小生成樹其實是最小權重生成樹的簡稱。 以有線電視電纜的架設為例,若只能沿著街道佈線,則以街道為邊,而路口為頂點,其中必然有一最小生成樹能使佈線成本最低。 [编辑] 性質
[编辑] 演算法Prim演算法與Kruskal演算法是尋找最小生成樹的經典方法,兩者皆為貪心法,通常使用二元堆積,時間複雜度為 O(ElgV)。若使用Fibonacci堆,Prim演算法可加速至 O(E + VlgV)。 [编辑] 安全邊Prim演算法與Kruskal演算法使用贪心法時有著相似的思維:一次「生成」一條「安全邊」,如下所示:
GENERIC-MST-FUNCTION (G,w)
1 T := 空集合
2 while T 還不是生成樹
3 do 找出對 T 來說是「安全」的邊 (u, v)
4 T := T U {(u, v)}
5 return T
|

),而 w(u, v) 代表此
)且為

