2012-01-15 4 views
1

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

Как я понимаю, если начальная вершина равна (5), тогда алгоритм будет идти, 5-> 4-> 1, а затем прекратится. Вершина (2) по-прежнему будет иметь бесконечность, как ее вес.

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

Graph

+0

Я думаю, что мое замешательство было в очереди. Я думал, что Queue содержит только вершины, доступные из текущей вершины. Итак, когда я добрался до вершины (1), тогда очередь была пуста. – Justin

ответ

3

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

Смежные вопросы