【发布时间】:2016-04-10 04:47:08
【问题描述】:
对于无向图来说,寻找单源最短路径的 Dijkstra 算法是最有效的算法吗?我正在使用此算法来计算从车站 1(起始节点)到车站 N(目的地节点)的公交路线的最低票价。连接中间车站的路径有一个票价分配(边权重)。注意,公交路线网络可以有
- 1
- 1
问题的详细信息可以在这里找到 - https://www.hackerrank.com/challenges/jack-goes-to-rapture
现在,我的代码逻辑是合理的,因为 16 个测试用例中只有 2 个失败。失败的原因是测试用例中的图形大小很大,执行时间导致超时。
我可以使用一些帮助来优化代码(Dijkstra 算法)。如果有其他算法可以更有效地处理大尺寸图,也想了解一下。谢谢。
【问题讨论】:
-
A* search 可能更快?
-
如果你有好的启发式函数,也许A*更好en.wikipedia.org/wiki/A*_search_algorithm
-
用地标和三角不等式查找 A-star,也称为首字母缩略词 ALT path-finding。
-
用地标和三角不等式查找 A-star,也称为首字母缩略词 ALT path-finding。这将解释如何构建和使用合适的(即可接受的)启发式来实现您的性能要求。 Dijkstra 的算法通常是 O(N^2) 性能。
-
复杂度 Dijkstra 算法
O(E log V)与“标准”实现(带有优先级队列)。你也可以看看en.wikipedia.org/wiki/Shortest_Path_Faster_Algorithm
标签: algorithm graph-theory dijkstra