几种最短路算法

图算法小记

Posted by SHIELD-SKY on August 13, 2016

适用范围:

  • 广度优先算法:输入图的每条边的权重都是单位权重

  • Dijkstra算法:输入图的所有边权重为非负值

  • Bellman-Ford算法:允许输入图中包含负权边,但不能有可以从源结点到达的权重为负值的环路。通常情况下,如果存在一条权重为负权值得环路,Bellman-Ford算法可以侦测并报告其存在。

松弛操作

  • Dijkstra算法和用于有向无环图的最短路径算法对每条边仅松弛一次
  • Bellman-Ford算法则对每条边松弛|V|-1次