Jak to działa?
Lekcja 3 z 9 w kursie Algorytm Kruskala — algorytmy grafowe w Coddy.
Struktura Union-find przechowuje tablicę parent. Każdy wierzchołek początkowo jest własnym korzeniem. Wszystko opiera się na dwóch operacjach:
- find(x): podążaj za odnośnikami
parent, aż dotrzesz do korzenia (wierzchołka, który jest własnym rodzicem). Dwa wierzchołki są połączone, gdy mają ten sam korzeń. - union(a, b): ustaw jeden korzeń jako rodzica drugiego, łącząc oba zbiory.
Algorytm Kruskala:
- Przetwarzaj krawędzie od najmniejszej wagi do największej.
- Dla każdej krawędzi użyj
find, aby znaleźć korzenie jej końców. Jeśli są różne, krawędź łączy dwie osobne części: użyjunion, aby je połączyć, i dodaj jej wagę do sumy. - Jeśli korzenie są takie same, krawędź utworzyłaby cykl, więc ją pomiń.
Po przetworzeniu wszystkich krawędzi wybrane krawędzie tworzą MST (dla spójnego grafu jest ich dokładnie n - 1).
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Algorytm Kruskala — algorytmy grafowe
2Algorytm
Jak to działa?PseudokodImplementacja (część 1)Implementacja (część 2)Poćwicz samodzielnie: Kompilator C online