国产探花免费观看_亚洲丰满少妇自慰呻吟_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算法 ——— 將森林變為樹


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建湖县| 五台县| 利津县| 灵璧县| 循化| 桃江县| 南召县| 盖州市| 铜陵市| 婺源县| 汉中市| 马山县| 荥经县| 新乐市| 饶河县| 内黄县| 莆田市| 绍兴市| 东光县| 张掖市| 炉霍县| 长汀县| 元氏县| 鸡西市| 封丘县| 县级市| 饶平县| 观塘区| 崇文区| 东明县| 横山县| 吉木萨尔县| 综艺| 武义县| 永新县| 正镶白旗| 龙江县| 广东省| 三穗县| 泸西县| 保亭|