Pseudo Code
Урок 4 из 9 курса Алгоритм Краскала — Алгоритмы на графах на Coddy.
kruskal(n, edges):
parent[i] = i for all i # каждая вершина в своем собственном множестве
total = 0
repeat until all edges considered:
pick the unused edge (u, v, w) with the smallest w
ru = find(u); rv = find(v)
if ru != rv: # нет цикла
parent[ru] = rv # объединение
total += w
return total
find(x):
while parent[x] != x: x = parent[x]
return x- Выбор наименьшего неиспользованного ребра в каждом раунде (min-selection) позволяет избежать необходимости в отдельной сортировке.
- find поднимается к корню; union — это простое присваивание одного корня другому.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Алгоритм Краскала — Алгоритмы на графах
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)