Как оптимизировать алгоритм Дейкстры для одного кратчайшего пути между двумя узлами?
Я пытался понятьэта реализация в C алгоритма Дейкстры и в то же время измените его так, чтобы был найден только кратчайший путь между двумя конкретными узлами (источником и местом назначения).
Тем не менее, я не знаю точно, что делать. То, как я это вижу, мне нечего делать, я не могу изменитьсяd[]
или жеprev[]
потому что эти массивы объединяют некоторые важные данные для вычисления кратчайшего пути.
Единственное, о чем я могу думать, это остановить алгоритм, когда найден путь, то есть разорвать цикл, когдаmini = destination
когда он отмечен как посещенный.
Могу ли я сделать что-нибудь еще, чтобы сделать это лучше или этого достаточно?
РЕДАКТИРОВАТЬ:
Хотя я ценю высказанные мне предложения, люди все равно не могут точно ответить на мои вопросы. Все, что я хочу знать, это как оптимизировать алгоритм для поиска только кратчайшего путимежду 2 узлами, Мне пока не интересны все другие общие оптимизации. Я говорю, что в алгоритме, который находит все кратчайшие пути от узла X ко всем остальным узлам, как я могу оптимизировать его для поиска только определенного пути?
П.С .: Я только что заметил, чтоfor
петли начинаются с1
до тех пор<=
почему это не может начаться в0
и идти до<
?