普利姆演算法

2021-10-08 19:01:43 字數 1157 閱讀 4776

原理:將頂點分為兩個類,其中一類為沒有選中類,另一類為選中類。每次迭代中將權值小的路徑新增到選中類找到最小生成樹。

我們從a點開始,首先將a點納入選中類,在從a點向非選中類找最小路徑得到a——>b這條,此時再將a和b看為乙個整體,向非選中類找最小路徑得到a——>b——>c,按照這種流程最終可以得到最後一幅圖,去掉不必要的邊後,就為最小生成樹。值為39。

執行結果

**執行過程:

第一次遍歷從a到其他點,代表a的是第一行,而a只能到b-k的點,第一列是a,所以只能遍歷下標1到10的資料。得到b點。

第二次遍歷從a和b到其他點,代表ab的是第一二行,而ab只能到c-k的點,第一列和第二列是a和b,所以只能遍歷下標2到10的資料。得到c點。

第三次遍歷從ab和c到其他點,代表abc的是第一二三行,而abc只能到d-k的點,第一列第二列和第三列分別是ab和c,所以只能遍歷下標3到10的資料。得到e點。

第四次遍歷從abc和e到其他點,代表abce的是第一二三五行,而abcd只能到d和f-k的點,第一列第二列第三列和第五列分別是abc和e,所以只能遍歷下標3和5到10的資料。以此類推,後面的大家自己體會。

第一次寫,經驗不足,後會有期。

普利姆演算法

演算法思想 可取圖中任意乙個頂點v作為生成樹的根,之後若要往生成樹上新增頂點w,則在頂點v和w之間必定存在一條邊。並且該邊的權值在所有連通頂點v和w之間的邊中取值最小。一般情況下,假設n個頂點分成兩個集合 u 包含已落在生成樹上的結點 和v u 尚未落在生成樹上的頂點 則在所有連通u中頂點和v u中...

普利姆演算法

普利姆 prim 這個演算法有什麼用?在實際中這個演算法經常用到電子板的電路連線中,因為可以使用到最少的連線將所有的電子連線起來,又打個比方在鋪設電線將所有使用者連線起來可以使用最少的電線連線起來 知道了這個作用之後你是不是比較感興趣呢?首先看 prim演算法生成最小生成樹 void minispa...

普利姆演算法

演算法思想 可取圖中任意乙個頂點v作為生成樹的根,之後若要往生成樹上新增頂點w,則在頂點v和w之間必定存在一條邊。並且該邊的權值在所有連通頂點v和w之間的邊中取值最小。一般情況下,假設n個頂點分成兩個集合 u 包含已落在生成樹上的結點 和v u 尚未落在生成樹上的頂點 則在所有連通u中頂點和v u中...