国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

最小生成樹問題

2019-11-08 01:55:19
字體:
來源:轉載
供稿:網友

最小生成樹 1.是一棵樹 2.無回路 3.N個頂點一定有N-1條邊 4.包含全部頂點 5.N-1條邊都在圖里 6.邊的權重和最小

生成約束: 1.只能用圖里有的邊 2.只能正好用掉N-1條邊 3.不能有回路

主要算法

PRim算法 -- 讓樹長大

int prim(int n) { memset(vis,false,sizeof(vis));//標記數組清零 for(int i=1; i<=n; i++) { dis[i] = arr[1][i];//從1號節點開始生成樹 } int ans = 0;//距離權值總和 vis[1] = true;//生成樹的根(起點)標記訪問過 for(int i=2; i<=n; i++)//要生成n-1條邊,所以循環n-1次 { int pos = i;//用來記錄每一次循環找到的節點編號 int Min = INF;//無窮大 for(int j=1; j<=n; j++)//對dis數組進行遍歷找到距離最小的 { if(vis[j]==false && dis[j] < Min)//如果該點未被訪問過,并且距離更小 { Min = dis[j];//更新最小距離 pos = j;//記錄節點編號 } } ans += Min;//加上找到的最小權值 vis[pos] = true;//標記找到的該點被訪問 for(int j=1; j<=n; j++)//更新dis數組 { if(vis[j]==false && dis[j] > arr[pos][j])//如果該點未被訪問過且距離更大 { dis[j] = arr[pos][j];//更新生成樹到該點的距離 } } } return ans;//得出權值總和 }

Kruskal算法 ——— 將森林變為樹


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枣强县| 石城县| 兰州市| 沿河| 固阳县| 新竹县| 石嘴山市| 旬邑县| 武穴市| 阿瓦提县| 巧家县| 广昌县| 宽甸| 清水河县| 武汉市| 汉阴县| 年辖:市辖区| 大厂| 微山县| 林甸县| 肃宁县| 西峡县| 凌云县| 北流市| 吉安市| 满洲里市| 洛浦县| 伊宁市| 凌海市| 松阳县| 翁源县| 邯郸市| 龙泉市| 靖边县| 龙泉市| 平乐县| 徐汇区| 威海市| 娱乐| 达州市| 铜川市|