關於最小生成樹算法

藉助可視化工具分析一哈

https://visualgo.net

Kruskal(克魯斯卡爾)算法

根據我的理解,就是每次選擇一條權重最小的邊,且加入這條邊後不構成環路,最後組成一棵樹

以下圖的情形爲例

  1. 初始狀態

在這裏插入圖片描述

  1. 節點1 、 2之間權重最小,加入這條邊

在這裏插入圖片描述

  1. 節點0 、1 與節點0 、 2之間權重都爲4,加入其中一條

在這裏插入圖片描述

  1. 首先嚐試將0 2 這條邊加入,但是此時會構成迴路

    選擇將權重爲6的邊加入

在這裏插入圖片描述

  1. 將權重爲6的節點加入,此時每個節點都訪問到了,最小生成樹構成。
    在這裏插入圖片描述

Prime算法

還是以上面的情形爲例

  1. 我們一0爲起始點,節點1 爲節點0最少代價能到達的節點,將節點1加入
    在這裏插入圖片描述
    1. 此時節點2爲節0 或1 節點經過最少代價能到達的節點,將節點二2加入在這裏插入圖片描述
  2. 此時節點0 與 節點2 之間權重最小,但是會構成迴路;選擇節點3加入
    在這裏插入圖片描述
    1. 加入節點4,所有節點都已經到達,構成樹
      在這裏插入圖片描述

放一個僞代碼
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章