Алгоритм Дейкстры позволяет найти кратчайший путь от одной из вершин графа до всех остальных. intuit.ru habr.com Он работает только для графов без рёбер отрицательного веса. intuit.ru education.yandex.ru
Принцип работы: на каждом шаге помечается определённым образом выбранная вершина, а далее просматриваются все последующие (ещё не отмеченные) вершины графа и вычисляется длина пути до каждой из них от начальной точки. spravochnick.ru
Некоторые шаги алгоритма Дейкстры:
- Всем вершинам, за исключением первой, присваивается вес, равный бесконечности, а первой вершине — 0. intuit.ru education.yandex.ru
- Все вершины не выделены. intuit.ru
- Первая вершина объявляется текущей. intuit.ru education.yandex.ru
- Вес всех невыделенных вершин пересчитывается по формуле: вес невыделенной вершины есть минимальное число из старого веса данной вершины, суммы веса текущей вершины и веса ребра, соединяющего текущую вершину с невыделенной. intuit.ru education.yandex.ru
- Среди невыделенных вершин ищется вершина с минимальным весом. intuit.ru education.yandex.ru Если таковая не найдена, то есть вес всех вершин равен бесконечности, то маршрут не существует. intuit.ru education.yandex.ru
- Если текущей вершиной оказывается конечная, то путь найден, и его вес есть вес конечной вершины. intuit.ru education.yandex.ru
- Переход на шаг 4. intuit.ru education.yandex.ru
Алгоритм Дейкстры используется в ряде реальных приложений, например для маршрутизации сетевых пакетов. ru.hexlet.io