我讀wikipeida,發現克魯斯卡的僞代碼如下所示:Kruskal算法解釋
KRUSKAL(G):
foreach v ∈ G.V:
MAKE_SET(v)
G.E = sort(G.E)
i = 0
while (i != |V|-1):
pick the next (u, v) edge from sorted list of edges G.E
if (FIND_SET(u) != FIND_SET(v)):
UNION(u, v)
i = i + 1
我安靜不知道什麼FIND_SET()
呢,和維基百科有如下描述:
如果邊連接兩棵不同的樹,然後將其添加到森林中,將兩棵樹組合成一棵樹。
所以我想它會檢查兩個不同的樹是否連接,但這是什麼意思?
「偏離主題」...這是一個脫離主題?! (@ Close-voter) –
你誤表了代碼。再看看'i = i + 1'應該去的地方。 –
我認爲如果用if(!inSameSet(u,v))替換'if(FIND_SET(u)!= FIND_SET(v))',代碼會更容易清楚。 – goat