Prim最小生成樹

2021-09-11 03:25:14 字數 438 閱讀 3147

用於解決帶權無向圖minimum spanning tree

樹是圖的一種,樹不會連通形成cycle,貪心演算法一種,每一步選取最短路徑

step1

隨機選取某一node, 選取與其最近鄰的節點,並連線,將兩點加入節點集

step2

選取距離該兩點距離最近的第三點,此處需要理解什麼是距離節點集內兩點最近:

分別計算其餘所有點與前兩點距離,並選取距離為最小值為第三點,加入節點集

如c 距離a 為5,距離b 為無窮,min(5, 無窮)取5,

d點距離a 為7,距離b為2,min(7,2)取2,

e點距離a為無窮,距離b為無窮,min(無窮,無窮) 取無窮

d距離上述兩點距離最短,

將d加入節點集,並連線bd。

以此類推

step3

…step4

最小生成樹 Prim

include stdio.h include stdlib.h include io.h include math.h include time.h define ok 1 define error 0 define true 1 define false 0 define maxedge 20 ...

最小生成樹 prim

演算法模型 由任意乙個頂點開始 將此頂點存入s集,剩餘頂點存入t集合 每次遍歷頂點,取一條能夠連線s與t最短邊e,直到所有頂點全部加入s include include define inf 1 30 int n,m,vis 110 low 110 int map 110 110 int init ...

最小生成樹 PRIM

這個是有關普利姆的演算法,從乙個點出發,找出與這個點相連的所有點的對應的權值最小的那個,然後再把這個點從集合中劃掉。模板如下 include include define inf 0xfffff define max 2005 using namespace std int map max max ...