существует несколько согласованных последовательностей его вершин, которые могут быть получены при помощи топологической сортировки, в частности:
В последовательности могут быть переставлены любые две стоящие рядом вершины, которые не входят в отношение частичного порядка.
Топологическая сортировка широко применяется в различных отраслях например, с её помощью можно построить последовательность прохождения учебных курсов студентами, последовательность установки программ при помощи пакетного менеджера, последовательность сборки исходных текстов программ по данным сборочных файлов, можно построить список отображения объектов в изометрической проекции зная парные порядковые отношения между объектами (какой из двух объектов должен быть прорисован раньше).
Один из первых алгоритмов, и наиболее приспособленный к исполнению вручную разработан Артуром Каном в 1962 году.
Пусть дан ациклический ориентированный простой граф . Через обозначим множество таких вершин , что . То есть — множество всех вершин, из которых есть дуга в вершину . Пусть — искомая последовательность вершин.
пока
выбрать любую вершину такую, что и
удалить из всех
Наличие хотя бы одного цикла в графе приведёт к тому, что на определённой итерации цикла не удастся выбрать новую вершину .
Например, если задан граф:
,
алгоритм выполнится следующим образом:
шаг
0
1
2
3
4
5
На втором шаге вместо может быть выбрана вершина , поскольку порядок между и не задан.
Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К.Глава 22.4. Топологическая сортировка // Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. — 2-е изд. — М.: Вильямс, 2005. — С. 632—635. — ISBN 5-8459-0857-4.