最短路径算法对比分析

原创 2016年08月29日 19:52:17

最短路径算法对比分析

Floyd

Dijkstra

Bellman-Ford

队列优化的Bellman-Ford

空间复杂度

O(N^3)

O(M)

O(M)

O(M)

时间复杂度

O(N^3)

O((M+N)logN)

O(NM)

O(NM)

适用情况

稠密图

和顶点关系密切

稠密图

和顶点关系密切

稀疏图

和边关系密切

稀疏图

和边关系密切

负权

可以解决

不能解决

可以解决

不能解决

所求

求两点间最短路

求某点到所有点最短路

求某点到所有点最短路

求某点到所有点最短路

思路

三层循环枚举桥梁判断是否通过桥梁会有更短路

从所求点更新周围所有点然后每次走到最近的点

枚举所有边判断是否通过边能更新dis

与未优化差不多,只是用了队列


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

最短路径算法分析模拟

  • 2009-02-16 11:29
  • 57KB
  • 下载

Dijkstra(迪杰斯特拉)最短路径算法分析

Dijkstra算法属于稍微复杂一些的算法,理解起来也不是那么容易,当初在网上搜最短路径算法的时候感觉大多数博文都讲的不是那么详细,主要是代码,许多需要注释的地方都省略了。也不是说这样做不好,注释的越...

图的最短路径算法分析与总结

图的求最短路径算法大类可以分为4种,在这里一一介绍 1.Floy算法 2.Dijkstra算法 3.Bellman-Ford算法 4.Bellman-Ford算法的队列优化 一, Flo...

最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(Python)

Dijkstra(迪杰斯特拉)算法是典型的最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,...

最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)

最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++) Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点...

最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)

原文地址http://www.wutianqi.com/?p=1890 Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始...

最短路径算法实现

  • 2013-11-20 21:52
  • 30KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)