最小生成樹之普里姆(prim)法求最小生成樹

2021-08-09 12:24:40 字數 713 閱讀 3296

基本思想

設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 中某個頂點的權值最小 將...