一、如果是有向无环图(DAG),求单源最短路,用 拓扑松弛算法

       具体算法见:https://www.jianshu.com/p/cf1b9fcfe3bf

 

二、如果是没有负边(边权为负值)的(有向/无向)图,求单源最短路,用 Dijkstra算法

 

三、如果是没有负圈(权值和为负数的回路)的(有向/无向)图,求单源最短路,用 Bellman-Ford算法

   注意:BF算法虽然能处理有负边的图,但是负边仅限于有向单负弧,因为有向双负弧、无向负边等价于负圈

 

四、如果是求多源最短路,用 Floyd-Warshall算法

 

posted on 2020-09-04 17:18  wkxnk  阅读(256)  评论(0编辑  收藏  举报