Menu
Coddy logo textTech

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 — это простое присваивание одного корня другому.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Алгоритм Краскала — Алгоритмы на графах