基本思想
設g是具有n(u1,u2,u3.....un)個頂點,m個邊的連通無向圖,t是g的最小生成樹, t的初始狀態為u=,value={},
記乙個陣列d[i],,表示當前最小生成樹中的頂點到i的最小值;
d的初始狀態為d[i]=d[1][i];
每次加入距離t最近的乙個點,連續加入n-1個點即可
#include
using namespace std;
int a[
10010][
10010
],d[
100010];
intmain()
for(i=
1; i<=m; i++
)for
(i=2
; i<=n; i++
) d[i]
=a[1
][i]
;// 初始化d陣列
for(i=
2; i<=n; i++
)// 遍歷n-1次(向t中加入n-1個點)
} s+
=mmin;
d[temp]=0
;// 表示點temp在t中
for(j=
2; j<=n; j++)}
}printf
("%d"
,s);
return0;
}
普里姆(Prim)求最小生成樹
一 普里姆 prim 演算法 1.基本思想 設g v,e 是具有n個頂點的連通網,t u,te 是g的最小生成樹,t的初始狀態為u u0 v te 重複執行下述操作 在所有u u,v v u的邊中找一條代價最小的邊 u,v 併入集合te,同時v併入u,直至u v。即 1 從連通網路 g 中的某一頂點...
最小生成樹之Prim(普里姆)演算法
關於什麼是prim 普里姆演算法 在實際生活中,我們經常碰到類似這樣的一類問題 假設要在n個城市之間建立通訊聯絡網,則連通n個城市只需要n 1條線路。這時,我們需要考慮這樣乙個問題,如何在最節省經費前提 下建立這個通訊網.換句話說,我們需要在這n個城市中找出乙個包含所有城市的連通子圖,使得 其所有邊...
最小生成樹之普里姆 Prim 演算法
prim 演算法是一種貪心演算法 適合稠密圖 設g v,e 是無向連通帶權圖,v 設最小生成樹 t u,e 演算法結束時 u v,e e。貪心選擇的思想是 每次對於還未加入到 u 中 即 v u 中 所有點頂,從這些頂點中選擇乙個頂點,選擇的標準是,它距離 u 最近 和 u 中某個頂點的權值最小 將...