У меня есть некоторые проблемы, реализующие алгоритм Дейкстры в Java.
Я использую этот (первый) псевдокод: http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
Строка 15 вам нужно получить вершину с самым низким расстоянием. Но как я могу сохранить расстояние с соответствующим расстоянием.
Примечание: вершина определяется как целое число.
Мои решения, которые не работали должным образом:
Поэтому я ищу быстрый способ сохранить вершину на расстоянии, и должно быть легко получить вершину с минимальным расстоянием.
Попробуйте использовать PriorityQueue. Таким образом, вы можете просто удалить голову, так как она будет иметь минимальное расстояние от всех вершин.
Дополнительную информацию о PriorityQueue можно найти здесь: http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html
O(|E|)
(в то время как обычно это O(|V|)