在 Java 中实现 Dijkstra 算法
Implementing Dijkstra's algorithm in Java
我已经对此进行了大量阅读,并且知道 Java 中关于该算法的讨论是半频繁的。我在 Java 中实施 Dijkstra 算法的问题只是我不确定如何准备我的数据。
我在数组中有一组坐标,在矩阵中有一组 1 和 0,表示坐标所代表的点之间是否存在路径。我的问题是,我如何提供这些信息,以便我可以使用 Dijkstra 搜索最佳路径?我看到很多人创建了一个 "Node" class,但他们似乎从未在该节点中存储坐标。是否有一些标准化的方法来创建我只是缺少的这种结构(我想它是一个图表?)?
如有任何帮助,我们将不胜感激。
主要有两个选项:
1. 您可以使用邻接矩阵,其中的行和列代表您的节点。值矩阵 [x, y] 必须是从 x 到 y 的权重(例如 distance/cost 等)。您可以使用欧几里德距离从坐标数组中计算这些值;
2. 您可以实现几个 类(节点、边缘 - 或者只是节点,内部映射到另一个节点,权重作为映射值) - 它确实是一个图。
我已经对此进行了大量阅读,并且知道 Java 中关于该算法的讨论是半频繁的。我在 Java 中实施 Dijkstra 算法的问题只是我不确定如何准备我的数据。
我在数组中有一组坐标,在矩阵中有一组 1 和 0,表示坐标所代表的点之间是否存在路径。我的问题是,我如何提供这些信息,以便我可以使用 Dijkstra 搜索最佳路径?我看到很多人创建了一个 "Node" class,但他们似乎从未在该节点中存储坐标。是否有一些标准化的方法来创建我只是缺少的这种结构(我想它是一个图表?)?
如有任何帮助,我们将不胜感激。
主要有两个选项: 1. 您可以使用邻接矩阵,其中的行和列代表您的节点。值矩阵 [x, y] 必须是从 x 到 y 的权重(例如 distance/cost 等)。您可以使用欧几里德距离从坐标数组中计算这些值; 2. 您可以实现几个 类(节点、边缘 - 或者只是节点,内部映射到另一个节点,权重作为映射值) - 它确实是一个图。