003 普利姆演算法求解最小生成樹的簡單例項

2021-07-28 14:26:34 字數 2812 閱讀 3444

給定6個節點,這6的節點中間有十條相連的通路,有的是直接相連,有的則是間接相連。如圖所示:

圖中的6個節點被分別標註為,它們之間的連線也有各自的權重,要想求出最小生成樹,如果使用普利姆演算法的話,應該如下操作:

1.我們設定lowmoney【i】為「以i為終點的時候最小的權重,也就是最小的花費」,當它等於0的時候代表該點已經被選中;

2.destination【i】為對應上面最小權重的時候,是誰在與之對應,也就是說誰將作為起點與之對應;

3.「*」可以看做無窮大,也就是沒有直接的通路;

1.首先將p1看作基本點,這個時候就有

我們不難看出,除了自身以外,lowmoney 為最小值,所以我們將它選定,選定之後設定為lowmoney = 0;

則就會有:

我們不難看出,除了自身以外,lowmoney【6】 為最小值,所以我們將它選定,選定之後設定為lowmoney【6】 = 0;

則就會有:

我們不難看出,除了自身以外,lowmoney【3】 為最小值,所以我們將它選定,選定之後設定為lowmoney【3】 = 0;

則就會有:

我們不難看出,除了自身以外,lowmoney【2】 為最小值,所以我們將它選定,選定之後設定為lowmoney【2】 = 0;

則就會有:

我們不難看出,除了自身以外,lowmoney 為最小值,所以我們將它選定,選定之後設定為lowmoney = 0;

則就會有:

至此,我們已經找到了最小生成樹,這個演算法就算是結束了,所以呢,最後的最小權值也就是最小花費就是(1+2+3+4+5=15),這就是普利姆演算法求解最小生成樹的全部過程。

最小生成樹 普利姆 Prim 演算法

概念 將給出的所有點連線起來 即從乙個點可到任意乙個點 且連線路徑之和最小的圖叫最小生成樹。最小生成樹屬於一種樹形結構 樹形結構是一種特殊的圖 或者說是直鏈型結構,因為當n個點相連,且路徑和最短,那麼將它們相連的路一定是n 1條。可以利用參考乙個問題理解最小生成樹,有n個村莊,每個村莊之間距離不同,...

最小生成樹之prim 普利姆 演算法

求最小生成樹 prim演算法 1000 ms 10000 kb 1726 3439 tags 生成樹 求出給定無向帶權圖的最小生成樹。圖的定點為字元型,權值為不超過100的整形。在提示中已經給出了部分 你只需要完善prim演算法即可。輸入第一行為圖的頂點個數n 第二行為圖的邊的條數e 接著e行為依附...

普利姆演算法和克魯斯卡爾演算法求解最小生成樹

q 最小生成樹有什麼用?a 譬如我要去五個城市旅遊,每兩個城市之間可能有路也可能沒有,路的距離可能一樣也可能不一樣,隨機從乙個城市出發,我想要把每個城市走一遍,怎麼樣走過的路距離最短,比如我想從上海出發,要走遍其他城市,要怎樣確定一條路徑最短,這就是最小生成樹的作用。求解最小生成樹有兩種基礎演算法 ...