【问题标题】:Most efficient shortest path algorithm on non-negative-edged graph非负边图上最有效的最短路径算法
【发布时间】:2015-10-16 10:03:36
【问题描述】:

在这五种算法中,在无向且只有正边的图上执行的最有效的最短路径算法是什么?

  1. BFS
  2. DAG
  3. 迪克斯特拉
  4. 弗洛伊德-沃歇尔
  5. 贝尔曼福特

所以我知道 Dijkstra 不能用于负边,并且运行时间为 O(E * logV),其中 E 是边数,V 是顶点数,所以这是我最好的猜测。这是正确的吗?

【问题讨论】:

  • DAG 并不是真正的算法(它是一类图),其余的也有所不同:Dijkstra(原始形式)是单一来源到单一目标,Bellman-Ford是所有顶点的单一来源,Floyd-Warshall 为您提供任意两个顶点之间的最短路径。
  • A* 可能是最有效的,如果你能提供一个好的启发式。
  • @piotrekg2 ...这是 Dijkstra 的知情版本。
  • 这些是适用于不同问题的相当不同的算法,因此这个问题没有多大意义。您可以尝试编辑您的问题以提供您面临的特定问题。正如目前所写的那样,我投票决定关闭它,因为它太宽泛了。

标签: algorithm graph graph-algorithm shortest-path


【解决方案1】:

如果您需要在未加权图中找到最短路径,BFS 将是最佳选择,但如果边上有权重,您只需找到单一来源和一个或多个其他节点,Dijkstra 将是最佳选择。如果您需要找到任意两对节点之间的最短路径(即有多个来源),最好的选择是 Floyd-Warshall。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多