課程
/后端開發(fā)
/C++
/數(shù)據(jù)結(jié)構(gòu)探險之圖篇
在算法第二步的找到最小邊連接的點,并找出點所在的點集合,對點做出相應(yīng)的處理,這樣的目的是什么
2020-02-10
源自:數(shù)據(jù)結(jié)構(gòu)探險之圖篇 4-6
正在回答
這是克魯斯卡爾算法的原理啊
在鄰接矩陣里取出所有邊后找出最小邊
最小邊對應(yīng)的點不在集合中則添加進去
一個在的話則把另一個添加到該點集合中
兩個都在同一個點集合中,只能拋棄這條邊,為什么呢?因為會形成回環(huán)。例如:有一個點集合為{A,B,C},要找的邊為AC,對應(yīng)兩個點都在,再選AC這條邊的話A-B,B-C,A-C就形成回環(huán),所以在程序里continue跳過
兩個點在不同的點集合中,說明這兩個點集合代表的邊可以通過當前這條邊連接起來,對應(yīng)程序里的處理就是拼接兩個vector
舉報
圖是眾多實際問題解決方案之源,從基礎(chǔ)概念入手掌握圖的處理
1 回答集合的合并問題
5 回答最小邊這個函數(shù)是不是有點問題?
1 回答最小生成樹問題
1 回答最小生成樹
1 回答我覺得是不是一個for循環(huán)就可以找到最小邊了?。?/p>
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-02-26
這是克魯斯卡爾算法的原理啊
在鄰接矩陣里取出所有邊后找出最小邊
最小邊對應(yīng)的點不在集合中則添加進去
一個在的話則把另一個添加到該點集合中
兩個都在同一個點集合中,只能拋棄這條邊,為什么呢?因為會形成回環(huán)。例如:有一個點集合為{A,B,C},要找的邊為AC,對應(yīng)兩個點都在,再選AC這條邊的話A-B,B-C,A-C就形成回環(huán),所以在程序里continue跳過
兩個點在不同的點集合中,說明這兩個點集合代表的邊可以通過當前這條邊連接起來,對應(yīng)程序里的處理就是拼接兩個vector