Dijkstra和Floyd–Warshall算法的比较

主要目的:

null
  • Dijkstra算法 是单源最短或SSSP算法的一个示例,即给定一个源顶点,它会找到从源到所有其他顶点的最短路径。
  • 弗洛伊德·沃沙尔算法 是所有对最短路径算法的一个示例,这意味着它计算所有对节点之间的最短路径。

时间复杂性:

  • Dijkstra算法的时间复杂度:O(E logv)
  • 弗洛伊德·沃沙尔的时间复杂性:O(V) 3. )

其他要点:

  • 我们可以使用Dijskstra的最短路径算法,通过对每个顶点运行来查找所有对最短路径。但这个过程的时间复杂度是O(VE logv),可以是(V) 3. 记录V)在最坏的情况下。
  • 这些算法之间的另一个重要区别是它们对分布式系统的工作。与Dijkstra的算法不同,Floyd Warshall可以在分布式系统中实现,使其适用于数据结构,如图的图形(用于地图)。
  • 最后,弗洛伊德·沃雷德将为负边缘而工作,但不会 负循环 ,而Dijkstra的算法不适用于负边。

本文由 维尼特·乔希 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享