Pseudo Code
Урок 4 из 9 курса Топологическая сортировка — алгоритмы на графах на Coddy.
topologicalSort(n, edges):
build directed adjacency; compute indeg[v] for all v
order = []
repeat n times:
pick = smallest v with indeg[v] == 0 (none left -> stop)
mark pick as used (indeg[pick] = -1)
order.add(pick)
for nb in adj[pick]:
indeg[nb] -= 1
return order- indeg[v] подсчитывает входящие ребра. Только ребра
u -> vувеличиваютindeg[v]. - Сканирование вершин
0..n-1и выбор первой с полустепенью захода 0 дает наименьший вариант на каждом шаге, поэтому порядок является детерминированным. - Установка
indeg[pick] = -1— это простой способ пометить вершину как уже размещенную.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Топологическая сортировка — алгоритмы на графах
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)