Prim演算法的簡單分析

2022-05-25 02:57:09 字數 720 閱讀 7824

prim演算法主要的思路:將點集一分為二,通過找到兩個點集之間的最短距離,來確定最小生成樹,每次確定最短距離後,對兩個點集進行更新。

具體的實現過程:難點就是如何找到兩個點集之間的最短距離,這裡設定兩個陣列,lowcost[i],mst[i],分別表示以i為終點的邊和對應的起點,有了這兩個陣列就能夠順利的進行狀態更新了。(整個**與dijstra演算法驚人的相似),大家可以將兩者對比起來看。

**:

#include #define  inf 99999999#include 

using

namespace

std;

int a[110][110

];int lowcost[110];//

lowcost[i]表示以i為終點的最短距離,

int mst[110];//

mst[i]對應的lowcost[i]的起點

//預設的起點為1

void prim(int

n) }

cout

<<'v'

<"

"<<'v'

<"

"for(int i=2;i<=n;i++)

}flag[tmp]=1

; }

}int

main()

}for(int i=1;i<=m;i++)

prim(n);

return0;

}

演算法筆記 普里姆Prim演算法的簡單實現

由於最近在學習資料結構,在學習的過程中動手把演算法的思路用 的形式實現了,這樣記憶更深刻。所以在此記錄下學習普里姆演算法時,如何通過該演算法獲得連通網的最小生成樹。一 建立以鄰接矩陣為儲存方式的帶權連通無向圖 連通網 二 利用prim演算法計算最小邊的權值之和 1 從圖中任取乙個頂點,把它當成一棵樹...

Prim 演算法的實現

最小生成樹除了prim還有kruskal演算法。prim演算法的實現,用到了優先佇列。include include include include include include include include include using namespace std 邊表 class edgeno...

prim演算法的實現

新增鏈結描述 執行了一下prim 演算法 覺得這個程式還可以 後期可以在此基礎上做較大的改動 故此分享了這個 include define maxvex 10 define true 1 define false 0 define inf 65535 此處是權值極大值 define length a...