How it works?
Lição 3 de 9 do curso Algoritmo de Kruskal - Algoritmos de Grafos da Coddy.
O Union-find mantém um array parent. Cada vértice começa como sua própria raiz. Duas operações conduzem tudo:
- find(x): siga os links
parentaté alcançar uma raiz (um vértice que é seu próprio pai). Dois vértices estão conectados quando compartilham uma raiz. - union(a, b): aponte uma raiz para a outra, mesclando os dois conjuntos.
Algoritmo de Kruskal:
- Processe as arestas do menor peso para o maior.
- Para cada aresta, use
findpara encontrar as raízes de suas extremidades. Se elas forem diferentes, a aresta une duas partes separadas: useunionnelas e adicione seu peso ao total. - Se as raízes forem as mesmas, a aresta formaria um ciclo, então ignore-a.
Após processar cada aresta, as arestas escolhidas formam a MST (para um grafo conectado, exatamente n - 1 delas).
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Algoritmo de Kruskal - Algoritmos de Grafos
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)