最小生成樹

要解決的問題:

一個有 n 個結點的連通圖的生成樹是原圖的極小連通子圖。(百度)
個人理解:舉個栗子,一個城市,四通八達,其交通網組成了一個複雜的圖。那麼最小生成樹就是這個圖的一個子圖。但是這個子圖有一個特點,它仍然和其母圖一樣從任意一個節點能夠訪問任意一個另外的節點。但是最小生成樹還有另外的一個特性,最小生成樹,就是,它的權是能夠訪問所有子節點的子圖的最小的。最小生成樹是唯一的。

入門算法:Prim算法

介紹:
這裏有一個表完美的說明了最小生成樹的構建過程:
//PS:有一種貪心的感覺

這裏寫圖片描述

簡單的解釋一下:

  1. 隨便選一個點
  2. 找一另一個未被選中的點到該點的路徑最小
  3. 將新找的點及路徑加入圖中
  4. 再找一個未被選中的點到該圖的路徑最小(這裏指的是直接路徑)
  5. 循環往復
  6. 直到所有的節點都加入了這個圖中
  7. 生成了最小生成樹
  8. OVER