java Dijkstra的最短路径如何算出最终目的地?
java Dijkstra’s shortest path how to figure out final destination?
我也在尝试使用 Dijkstra 的路径学习图形,并且正在使用 this geeks for geeks tutorial。我想我了解它是如何使用重量来找到最短路径的。然而,这可能很愚蠢,但我不明白如何通过查看代码来找到目标点。或者 9 个输入如何
为什么有 9 个输入不能只用三个?程序如何知道在哪里结束?
那个例子中的程序在访问完所有节点后结束,它没有选择特定的目的地。它计算从节点 0 到图中每个节点的最小距离(和路径)。
示例中有9个节点,当然你也可以使用3个节点,或者1000个节点..
因此,要解决您问题的前半部分,Dijsktra 的算法没有预先确定的 "destination node",更多的只是最终结果。
在这个来自 GeeksforGeeks 代码的例子中,
void dijkstra(int graph[V][V], int src)
我们可以看到该算法需要一个包含所有节点的数组,以及您将从哪个节点开始。该数组中的每个节点都有 9 个输入,对应于该节点与任何其他节点的给定距离,其中值 0 表示没有连接。例如,“0”节点的值:
{0, 4, 0, 0, 0, 0, 0, 8, 0}
这意味着节点 0 与节点 1 相距 4 个单位,与节点 7 相距 8 个单位,并且与其他 7 个节点没有连接,或者是其他 7 个节点之一。如果您只有 3 个节点,那么您将使用 3 个输入来表示所有 3 个之间的可能距离。
当程序用尽所有可能的节点和路径时,算法将停止。该算法寻找最小生成树,而不是从点 A 到点 B 的路径。
我也在尝试使用 Dijkstra 的路径学习图形,并且正在使用 this geeks for geeks tutorial。我想我了解它是如何使用重量来找到最短路径的。然而,这可能很愚蠢,但我不明白如何通过查看代码来找到目标点。或者 9 个输入如何
为什么有 9 个输入不能只用三个?程序如何知道在哪里结束?
那个例子中的程序在访问完所有节点后结束,它没有选择特定的目的地。它计算从节点 0 到图中每个节点的最小距离(和路径)。
示例中有9个节点,当然你也可以使用3个节点,或者1000个节点..
因此,要解决您问题的前半部分,Dijsktra 的算法没有预先确定的 "destination node",更多的只是最终结果。
在这个来自 GeeksforGeeks 代码的例子中,
void dijkstra(int graph[V][V], int src)
我们可以看到该算法需要一个包含所有节点的数组,以及您将从哪个节点开始。该数组中的每个节点都有 9 个输入,对应于该节点与任何其他节点的给定距离,其中值 0 表示没有连接。例如,“0”节点的值:
{0, 4, 0, 0, 0, 0, 0, 8, 0}
这意味着节点 0 与节点 1 相距 4 个单位,与节点 7 相距 8 个单位,并且与其他 7 个节点没有连接,或者是其他 7 个节点之一。如果您只有 3 个节点,那么您将使用 3 个输入来表示所有 3 个之间的可能距离。
当程序用尽所有可能的节点和路径时,算法将停止。该算法寻找最小生成树,而不是从点 A 到点 B 的路径。