普里姆(Prim)求最小生成樹

2021-08-25 23:06:05 字數 631 閱讀 6577

一、普里姆(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 = 中的某一頂點 u0 出發,選擇與它關聯的具有最小權值的邊(u0, v),將其頂點加入到生成樹的頂點集合u中。

(2)以後每一步從乙個頂點在u中,而另乙個頂點不在u中的各條邊中選擇權值最小的邊(u, v),把它的頂點加入到集合u中。如此繼續下去,直到網路中的所有頂點都加入到生成樹頂點集合u中為止。

2、示例:

3、實現**如下:

#include "stdio.h" #include "stdlib.h" #define max 110 int a[max][max],p[max]; int main(void) } } } p[new_point]=1; sum+=min; } printf("最小生成樹的權值為:%d/n",sum); system("pause"); return 0; }

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

基本思想設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 na...

普里姆演算法(Prim演算法求最小生成樹)

普里姆演算法的基本思想 普里姆演算法是一種構造最小生成樹的演算法,它是按逐個將頂點連通的方式來構造最小生成樹的。時間複雜度為o n 2 從連通網路n 中的某一頂點u0出發,選擇與它關聯的具有最小權值的邊 u0,v 將其頂點加入到生成樹的頂點集合u中。以後每一步從乙個頂點在u中,而另乙個頂點不在u中的...

Prim(普里姆)求小生成樹 模板

普里姆 prim 演算法,和克魯斯卡爾演算法一樣,是用來求加權連通圖的最小生成樹的演算法。基本思想 對於圖g而言,v是所有頂點的集合 現在,設定兩個新的集合u和t,其中u用於存放g的最小生成樹中的頂點,t存放g的最小生成樹中的邊。從所有u u,v v u v u表示出去u的所有頂點 的邊中選取權值最...