導航:首頁 > 源碼編譯 > 普里姆演算法適合構造稠密圖

普里姆演算法適合構造稠密圖

發布時間:2025-09-01 11:42:38

❶ 普里姆演算法的普里姆演算法的實現

為了便於在兩個頂點集U和V-U之間選擇權最小的邊,建立了兩個輔助數組closest和lowcost,它們記錄從U到V-U具有最小權值的邊,對於某個j∈V-U,closest[j]存儲該邊依附的在U中的頂點編號,lowcost[j]存儲該邊的權值。
為了方便,假設圖G採用鄰接矩陣g存儲,對應的Prim(g,v)演算法如下:
void Prim(MatGraph g,int v) //輸出求得的最小生樹的所有邊
{ int lowcost[MAXVEX]; //建立數組lowcost
int closest[MAXVEX]; //建立數組closest
int min,i,j,k;
for (i=0;i<g.n;i++) //給lowcost[]和closest[]置初值
{ lowcost[i]=g.edges[v][i];
closest[i]=v;
}
for (i=1;i<g.n;i++) //構造n-1條邊
{ min=INF; k=-1;
for (j=0;j<g.n;j++) //在(V-U)中找出離U最近的頂點k
if (lowcost[j]!=0 && lowcost[j]<min)
{ min=lowcost[j];
k=j; //k為最近頂點的編號
}
printf( 邊(%d,%d),權值為%d ,closest[k],k,min);
lowcost[k]=0; //標記k已經加入U
for (j=0;j<g.n;j++) //修正數組lowcost和closest
if (g.edges[k][j]!=0 && g.edges[k][j]<lowcost[j])
{ lowcost[j]=g.edges[k][j];
closest[j]=k;
}
}
}
普里姆演算法中有兩重for循環,所以時間復雜度為O(n2),其中n為圖的頂點個數。由於與e無關,所以普里姆演算法特別適合於稠密圖求最小生成樹。

閱讀全文

與普里姆演算法適合構造稠密圖相關的資料

熱點內容
風箏單片機 瀏覽:233
做程序員需要什麼 瀏覽:87
知道網站名怎麼查伺服器 瀏覽:76
冷庫空調壓縮機 瀏覽:462
廣東戴爾伺服器系列雲主機 瀏覽:380
程序員帶新人怎麼 瀏覽:772
查看文件夾的隱藏內容 瀏覽:993
客戶網路維護的伺服器是什麼 瀏覽:763
java短url 瀏覽:144
編程啟蒙教育是什麼意思 瀏覽:270
數學型編程 瀏覽:701
易捷pdf轉換器 瀏覽:995
360加固了什麼反編譯 瀏覽:866
程序員坐久了腰疼 瀏覽:901
伺服器參數如何查看 瀏覽:259
蚊帳加密50d什麼意思 瀏覽:277
python連接websocket 瀏覽:726
程序員的殺毒軟體 瀏覽:262
android信息發布 瀏覽:912
普里姆演算法適合構造稠密圖 瀏覽:668