日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java带权连通图上最小权边,连通图最小生成树的算法及实现

發(fā)布時(shí)間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java带权连通图上最小权边,连通图最小生成树的算法及实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

連通圖的最小生成樹(shù)

生成樹(shù)定義:

無(wú)向連通圖G的極小連通子圖,稱為它的生成樹(shù)。(n個(gè)頂點(diǎn),n-1條邊)

考慮一下下面這個(gè)圖

上圖是一個(gè)完全圖,它的生成樹(shù)不是唯一的,我們列出最特殊的兩種情況

上面2個(gè)圖都是第一個(gè)完全圖的生成樹(shù),但是2者是完全不同的。

按照深度優(yōu)先遍歷生成的生成樹(shù),稱為深度優(yōu)先生成樹(shù)

按照廣度優(yōu)先遍歷生成的生成樹(shù),稱為廣度優(yōu)先生成樹(shù)

非連通圖的生成森林,概念比較簡(jiǎn)單,無(wú)非就是非連通圖的極大連通子圖和生成樹(shù)的概念疊加

最小生成樹(shù)

圖G是帶權(quán)的無(wú)向連通圖,生成樹(shù)上個(gè)邊權(quán)值之和稱為生成樹(shù)的代價(jià),代價(jià)最小的生成樹(shù)稱為最小生成樹(shù)。

最小生成樹(shù)的生成算法

Prim算法

現(xiàn)有連通圖G=(V, E),其最小連通圖TG=(TV, TE)。

初始狀態(tài)下:V = {V0, V1, V2 ... Vn}; TV = {}

從V當(dāng)中任選一頂點(diǎn),插入TV,V = {V0, V1, V2 ... Vn}; TV = {V0}

找連接TV和V-TV這兩個(gè)集合的權(quán)值最小的邊,插入TE,并把該邊2頂點(diǎn)當(dāng)中原本不屬于TV的頂點(diǎn)加入TV;

重復(fù)上一步驟

知道V = TV

下面是java實(shí)現(xiàn),首先我們需要修改一下之前的生成圖的代碼,我們生成了一棵7個(gè)頂點(diǎn)的完全圖,每一條邊的權(quán)值是100以內(nèi)的隨機(jī)數(shù)。

Graph graph = new Graph();

String nodeNames[] = {"aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg"};

for (String s : nodeNames) {

graph.nodes.add(new Node(s));

}

graph.arcs = new int[nodeNames.length][nodeNames.length];

Random ra = new Random();

for (int i = 0; i < graph.nodes.size(); i ++){

for (int j = 0; j < graph.nodes.size(); j ++){

if (i != j){

graph.arcs[i][j] = ra.nextInt(100) + 1;

}

}

}

然后是最小生成樹(shù)的Prim算法實(shí)現(xiàn),解釋一下,首先創(chuàng)建一個(gè)二維數(shù)組表示邊,把空間都分配好,只等著往里面填數(shù)就行。然后是一個(gè)TreeMap對(duì)象,來(lái)保存頂點(diǎn),之所以用TreeMap,是為了保證新圖的頂點(diǎn)順序和原圖是一致的。剩下的基本就是跟前面算法描述的差不多,大家對(duì)著看就行,沒(méi)什么太難的地方。

public Graph getMinTree(){

int newArcs[][] = new int[this.nodes.size()][this.nodes.size()];

Map newNodes = new TreeMap();

newNodes.put(0, this.nodes.get(0));

while(newNodes.size() != this.nodes.size()){

int minWeight = 99999;

int minI = -1;

int minJ = -1;

for(int i : newNodes.keySet()){

for (int j = 0; j < this.nodes.size(); j ++){

if (i != j && !newNodes.containsKey(j)){

if (this.arcs[i][j] < minWeight){

minWeight = this.arcs[i][j];

minI = i;

minJ = j;

}

}

}

}

newNodes.put(minJ, this.nodes.get(minJ));

newArcs[minI][minJ] = minWeight;

newArcs[minJ][minI] = minWeight;

}

Graph res = new Graph();

res.arcs = newArcs;

res.nodes.addAll(newNodes.values());

return res;

}

下面有一次測(cè)試的輸出,2個(gè)圖,分別是原圖的所有權(quán)值信息,另一個(gè)是最小生成樹(shù)的權(quán)值信息

然后還可以用連通圖的dfs算法檢查一下。

Kruskal算法

先將所有邊按照權(quán)值,從小到大排序

依次訪問(wèn)各邊,如果生成回路,則舍棄,否則加入生成樹(shù),同時(shí)將該邊的另一頂點(diǎn)加入生成樹(shù)

直到所有頂點(diǎn)被加入

java實(shí)現(xiàn),省略。

總結(jié)

以上是生活随笔為你收集整理的java带权连通图上最小权边,连通图最小生成树的算法及实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91精品免费在线 | k8yy毛片 | 九九热视频在线免费观看 | 亚洲国产系列 | 法国极品成人h版 | 高清在线一区二区三区 | 日本男女激情视频 | 亚洲国产视频一区 | 免费观看毛片视频 | 毛片美女| 日韩午夜免费 | 天天综合永久 | 国产精品98| 四虎色网 | 艳母日本动漫在线观看 | 亚洲国产精品18久久久久久 | 欧美日韩三级 | av黄色一级片 | 福利片网址 | 亲嘴扒胸摸屁股激烈网站 | 日韩网站视频 | 999av视频| 一级黄色片在线免费观看 | 欧美女同在线 | 日产精品久久久久 | 99精品国产一区二区 | 三级视频小说 | 边啃奶头边躁狠狠躁 | 亚洲成人黄色在线 | 中文字幕不卡在线观看 | 91精品久久久久久久久久久 | 欧美精品不卡 | 91精品视频在线 | 疯狂做爰的爽文多肉小说王爷 | 欧美一级淫片免费视频魅影视频 | 成人无码www在线看免费 | 精品国产不卡 | 黄色理论视频 | 在线不卡欧美 | 五月天婷婷综合 | 国内偷拍精品视频 | 日韩av在线看免费观看 | 美女扒开尿口让男人桶 | 久久不射网站 | 免费人妻一区二区三区 | 91视频最新地址 | 久久婷婷成人综合色 | 国产乱淫精品一区二区三区毛片 | 国产伦精品一区二区三区在线观看 | 中文字幕3区 | 精品无码在线视频 | av直接看| 黄色大片在线播放 | 美女福利视频一区 | 亚洲一区| 国产高清免费在线 | 欧美精品二区三区四区免费看视频 | 国产性―交一乱―色―情人 | 久久艹免费视频 | 激情二区 | 少妇资源 | 成年人在线观看网站 | 日韩精品视 | bt天堂新版中文在线地址 | 天天操bb | 中文字幕一区二区三区在线观看 | v天堂在线 | 国产一国产二国产三 | 老牛影视av老牛影视av | 夜夜草网 | av网站大全在线 | 亚洲国产成人精品无码区99 | 亚洲一区二区三区四区视频 | 国产福利短视频 | 亚洲熟女www一区二区三区 | 天堂久久爱 | 黄色激情小说视频 | 男女无遮挡猛进猛出 | av成人在线免费观看 | 色窝窝无码一区二区三区 | 森泽佳奈作品在线观看 | 亚洲自拍偷拍一区 | 亚洲国产中文字幕在线观看 | 国产免费又黄又爽又色毛 | 日日爽视频 | 调教亲女小嫩苞h文小说 | 久久你懂的 | 免费的av在线 | 久久免费少妇高潮久久精品99 | 国产视频在线观看网站 | 天天天天躁天天爱天天碰2018 | 少妇久久久 | 色综合一区二区三区 | 成人免费视频a | 成人中文网 | 啪视频在线观看 | 国产片91 | 老熟妇午夜毛片一区二区三区 | 俄罗斯破处 |