用於解決帶權無向圖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 ...