生成樹的概念算法
生成樹
一個連通圖的生成樹是一個極小連通子圖,它含有圖中全
部頂點,但只有足以構成一棵樹的n-1條邊。
生成樹不惟一
spa
最小生成樹code
生成樹的代價等於其邊上的權值之和。
blog
兩種經常使用的構造最小生成樹的方法:class
Prim 算法
Kruskal 算法(重要)
方法
Prim算法im
假設N=(V, E)是連通網, TE是N上最小生成樹中邊的集合。
算法從U={u0}(u0∈V), TE={}開始,重複執行下述操做:
在全部u∈U, v∈V-U的邊(u, v)中找一條代價最小的邊(u0 ,v0),將
其併入集合TE,同時將v0併入U集合。
當U=V則結束,此時TE中必有n-1條邊,則T=(V, {TE})爲N的最小生
成樹。
prim算法構造最小生成樹的過程是從一個頂點U={u0}做初態,
不斷尋找與U中頂點相鄰且代價最小的邊的另外一個頂點,擴
充到U集合直至U=V爲止。
d3
prim算法求最小生成樹:從生
成樹中只有一個頂點開始,到
頂點所有進入生成樹爲止 db
Kruskal算法img
假設連通網N=(V, E),則令最小生成樹的初始狀態
爲只有n個頂點而無邊的非連通圖T=(V, {}),圖中
每一個頂點自成一個連通份量。
在E中選擇代價最小的邊,若該邊依附的頂點落在T
中不一樣的連通份量上,則將此邊加入到T中,不然
捨去此邊而選擇下一條代價最小的邊。依次類推,
直至T中全部頂點都在同一連通份量上爲止。
克魯斯卡爾算法求最小生成樹
若是你不開心,那我就把右邊這個帥傻子分享給你吧,
你看,他這麼好看,跟個zz同樣看着你,你還傷心嗎?
真的!這照片盯上他五秒鐘就想笑了。
一切都會過去的。
時間時間會給你答案2333