一、普里姆(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的所有頂點 的邊中選取權值最...