Algorithmus:
Der Algorithmus von Kruskal berechnet zu einem gewichteten Graphen einen minimalen Spannbaum,
indem zunächst die Kantenliste vorsortiert wird und dann in den anfangs
nur aus Knoten bestehenden Graph aufsteigend alle Kanten eingefügt werden,
die keinen Kreis erzeugen.
Pseudocode mit Union-Find-Datenstruktur: (Kanten seien vorsortiert)
forall do MakeNewSet()
for = 1 to
bestimme Knoten und zur Kante
if Find() Find() then
Union(Find(),Find())
endif enddo
Komplexität:
Der Algorithmus von Kruskal benötigt zum Vorsortieren Zeit
,
mit einer Union-Find-Datenstruktur zusätzlich nur Zeit
.
Vorsicht: Für (vollständiger Graph) wird der Algorithmus sehr langsam.