Завершение алгоритма Дейкстры - PullRequest
2 голосов
/ 15 января 2012

Что-то должно быть не так в моем понимании алгоритма. Как это должно работать на следующем графике.

Насколько я понимаю, если начальная вершина равна (5), то алгоритм пойдет 5-> 4-> 1, а затем завершится. У вершины (2) все еще будет бесконечность, поскольку это вес.

из Википедии:
если наименьшее предварительное расстояние среди узлов в невидимом наборе равно бесконечности (при планировании полного обхода), тогда остановитесь. Алгоритм завершен.

Graph

1 Ответ

3 голосов
/ 15 января 2012

Нет, он будет исследовать 3 -> 2 после того, как это будет сделано с веткой 4 -> 1. Все дочерние элементы исследуемого в данный момент узла добавляются в очередь, а затем из очереди берется узел с наименьшим предварительным расстоянием для обработки следующим.

...