prim演算法小筆記

2021-08-15 06:34:34 字數 660 閱讀 4094

#include #include #include using namespace std;

const int max = 0x3f3f3f,inf = 0x3f3f3f3f;//max定義鄰接矩陣的邊界;inf定義乙個無窮大的值,方便下面進行比較。

int n,g[max][max],d[max];/*n代表網中點的個數,d[i]代表點i到當前樹【可能只有一部分樹】的距離:g[i][j]代表i到j的距離,即鄰接

矩陣中i行j列中的數值。*/

bool vst[max]=;//判斷乙個點是否已被搜尋過。

int ans = 0;//計算構造生成樹所需要的代價,即權值之和。

void prime(int x)

}vst[u] = true;//標記已經當前已搜尋的點。

ans += min;//生成代價加和。

for(int v = 0;v < n;v++)}}

}int main()

}//輸入鄰接矩陣中具體的值。

prime(0);//以編號為0的點為起點,進行搜尋。

cout

memset(vst,false,sizeof(vst));//對數值進行初始化,便於下次進行。

}return 0;

}

Prim演算法 Kruskal演算法

一 prim演算法 1 要求 1 生成一顆連通的樹 2 生成樹 包含全部頂點,v 1條邊,沒有迴路,並且新增一條邊會變成有迴路 3 權重和最小 2 過程模擬 最重要 貪心的思想,每一步都要選擇權值最小的,這棵樹所有跟頂點相連的邊中最小的。從根節點開始,讓樹慢慢的長大。過程 從v1開始 跟v1有聯絡的...

Prim演算法 Kruskal演算法

prim演算法 kruskal演算法 prim演算法和kruskal演算法,都是用來找出圖中最小生成樹的演算法,兩個演算法有些小差別。prim演算法 又稱普里姆演算法,以圖上的頂點為出發點,逐次選擇到最小生成樹頂點集距離最短的頂點為最小生成樹的頂點,並加入到該頂點集,直到包含所有的頂點。1.選擇一出...

Kruskal演算法 Prim演算法

最小生成樹是什麼?自a2392008643的部落格 此演算法可以稱為 加邊法 初始最小生成樹邊數為0,每迭代一次就選擇一條滿足條件的最小代價邊,加入到最小生成樹的邊集合裡。把圖中的所有邊按代價從小到大排序 把圖中的n個頂點看成獨立的n棵樹組成的森林 按權值從小到 擇邊,所選的邊連線的兩個頂點ui,v...