Come funziona?
Lezione 3 di 9 del corso Algoritmo di Kruskal - Algoritmi sui grafi di Coddy.
Union-find mantiene un array parent. Ogni vertice inizia come radice di sé stesso. Due operazioni guidano tutto:
- find(x): segui i collegamenti
parentfinché non raggiungi una radice (un vertice che è il proprio genitore). Due vertici sono connessi quando condividono una radice. - union(a, b): collega una radice all’altra, unendo i due insiemi.
Algoritmo di Kruskal:
- Elabora gli archi dal peso minore al maggiore.
- Per ogni arco, trova le radici dei suoi estremi con
find. Se sono diverse, l’arco unisce due componenti separate: uniscile conunione aggiungi il suo peso al totale. - Se le radici sono uguali, l’arco formerebbe un ciclo, quindi saltalo.
Dopo aver elaborato tutti gli archi, gli archi scelti formano l’MST (per un grafo connesso, esattamente n - 1 archi).
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Algoritmo di Kruskal - Algoritmi sui grafi
2L'algoritmo
Come funziona?PseudocodiceImplementazione (Parte 1)Implementazione (Parte 2)Esercitati da solo: Compilatore C online