【问题标题】:Dijkstra vs BellFord algorithmDijkstra 与 BellFord 算法
【发布时间】:2016-04-05 21:52:04
【问题描述】:

如果我需要找到从一个源到图中所有其他顶点的最短路径,既是有向的又是加权的,我可以使用 Dijkstras 算法还是需要使用 BellFord 算法?

【问题讨论】:

  • Ford 可以处理负权重,Dijkstra 不能。有的话就用福特

标签: algorithm graph dijkstra


【解决方案1】:

由于 Dijkstra 的正确实现比 Bellman-Ford 更快,因此除非图中存在负权重边,否则请使用 Dijkstra。在这种情况下,Dijkstra 可能不正确,但 Bellman-Ford 仍会返回正确答案。

请记住,如果图具有负权重循环,则最短路径定义不明确。可以修改 Bellman-Ford 以检查给定图是否具有负权重循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-13
    • 2011-06-27
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多