我给出了一个60000道路与路口相连的文件。我必须制作一个程序,找到2个交叉点之间的最短路径。但它也必须能够找到两个其他交叉点之间的最快路径。我正在考虑使用BFS算法来解决这个问题,但我不知道这是否是正确的方法。我还发现了其他一些使用Dijkstra算法来解决这个问题的links。
我不是在寻找完整的代码mashup,但我只是想知道我是否朝着正确的方向前进。
PS:输入文件如下所示:
4370 6701 3079 2019 60
32840 9113 17817 7483 30
40758 13107 3445 2505 30
3074 11089 19209 2960 40
...
采用以下格式: 道路编号 - 起始交叉点 - 终点 - 距离(以米为单位) - 速度限制(以km / h为单位)
编辑(供将来参考):我决定使用Dijkstra的算法来解决这个问题,它就像一个魅力。非常感谢大家!事实证明,在超过600000个节点的图形中找到2个节点之间的最短路径只需要几秒钟。
答案 0 :(得分:0)
Dijkstra是去这里的好方法。你只需要为边缘选择合适的重量来表示距离和时间......但这很简单。