Motivation
Урок 2 из 9 курса Топологическая сортировка — алгоритмы на графах на Coddy.
Топологический порядок существует только тогда, когда в графе нет циклов. Мы строим его с помощью алгоритма Кана, который многократно удаляет вершину, не имеющую оставшихся входящих ребер.
Зачем изучать топологическую сортировку?
- Упорядочивание с ограничениями: системы сборки, планирование задач, предварительные условия курсов и пересчет электронных таблиц — все это опирается на нее.
- Обнаружение циклов: если вы не можете упорядочить каждую вершину, значит, граф содержит цикл.
- Основа для алгоритмов на DAG: кратчайшие и длиннейшие пути в DAG (направленном ациклическом графе) вычисляются в топологическом порядке.
Может существовать множество допустимых порядков. Чтобы получить один предсказуемый ответ, мы всегда удаляем вершину с наименьшим номером, чья полустепень захода (in-degree) равна 0.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.