最短路几种算法对比
来源:互联网 发布:上海优越感知乎 编辑:程序博客网 时间:2024/06/09 13:54
来自:http://blog.csdn.net/basycia/article/details/50766436
Dijkstra:
O(n2)适用于权值为非负的图的单源最短路径,用斐波那契堆的复杂度O(E+VlgV),
BellmanFord:
适用于权值有负值的图的单源最短路径,并且能够检测负圈,复杂度O(VE)
SPFA:
适用于权值有负值,且没有负圈的图的单源最短路径,论文中的复杂度O(kE),k为每个节点进入Queue的次数,且k一般<=2,但此处的复杂度证明是有问题的,其实SPFA的最坏情况应该是O(VE).
Floyd:
每对节点之间的最短路径。Floyd-Warshall算法的时间复杂度为O(N3),空间复杂度为O(N2)。
先给出结论:
(1)当权值为非负时,用Dijkstra。
(2)当权值有负值,且没有负圈,则用SPFA,SPFA能检测负圈,但是不能输出负圈。
(3)当权值有负值,而且可能存在负圈,则用BellmanFord,能够检测并输出负圈。
(4)SPFA检测负环:当存在一个点入队大于等于V次,则有负环。
0 0
- 最短路几种算法对比
- 【知识点】 ---最短路几种算法对比
- 最短路的几种常用算法
- 最短路,几种做法
- 最短路四种算法
- hdu2544 最短路(三种基本最短路算法)
- 【DayDayUp】【算法_图_最短路_之一_Dijkstra和几种优化姿势】
- 主要的4种最短路算法
- 最短路的四种算法总结
- 最短路的四种算法
- JavaScript最短路算法
- 最短路算法总结
- 最短路算法总结
- 最短路 Dijkstra算法
- 最短路算法
- 最短路算法
- 最短路-Floyd算法
- 算法训练 最短路
- 联合体(union)的使用方法及其本质
- 深度学习框架Caffe学习笔记(1)-Caffe环境搭建
- JVM(2)对象分配、布局、访问
- 微信小程序8-swiper(滑动面板)
- 递归、栈、非递归非栈实现二叉树的遍历
- 最短路几种算法对比
- HDU ACM 11 2079 选课时间 母函数或者DP
- 2016年11月7日学习总结
- Java 23种设计模式总结,收录学习
- leetcode_258
- 一个DirectDraw入门程序
- 基于Maven实现war包继承
- 第7天
- 动规第一天.2