克魯斯克爾算法(Kruskal's algorithm)跟普里姆算法同樣,是一種用來查找最小生成樹的算法,但算法的實現不同,它是經過對權值從小到大順序排列來查找最小生成樹的。算法
1.將原圖中全部的邊按權值從小到大排序。微信
2.從權值最小的邊開始,若是這條邊鏈接的兩個節點於圖中不在同一個已鏈接的邊中,則記錄該頂點爲已選擇。3d
3.重複步驟2,直至圖中全部的節點都連通,就找到了連通圖的最小生成樹。cdn
假如咱們有 V 表示圖中的頂點數,E 表示圖中的邊數。平均時間複雜度爲 。blog
注意:在權值相同的邊,咱們能夠任意選擇一條邊,但選擇的邊不能跟之前的邊構成環。若是當權值最小的邊跟已選擇的邊構成了環,就跳過當前的邊,繼續下一條權值最小的邊。排序
克魯斯克爾算法跟普里姆算法同樣,是一種用來查找最小生成樹的算法。it
對比兩個算法,克魯斯卡爾算法主要是針對邊來展開,邊數少時效率會很是高,因此對於稀疏圖有很大的優點;而普里姆算法對於稠密圖,即邊數很是多的狀況會更好一些。io
PS:
清山綠水始於塵,博學多識貴於勤。
我有酒,你有故事嗎?
微信公衆號:「清塵閒聊」。
歡迎一塊兒談天說地,聊代碼。class