最短路,模版

最短路一直是图论中比较热门的问题,因而求最短路的算法也是比较多的(在这里我就不给大家证明了,百度一大把),问题的解法一多有些人就摸不清头脑了,到底该用哪个算法呢?

让我们先总结一下4个常用的算法:

1.Bellman-Ford算法

2.Dijkstra算法(之后简称为DK最短路算法)

3.Floyd-Warshall算法

4.SPFA算法

那么实际问题中我们该选择哪种算法才是比较合适的呢?这正是我要向大家陈述的。这里就给大家做出这样一个分类吧。直接给出一个明了的图吧。


到了这里相信什么时候该用哪个算法应该是比较明了了的,接下来给出我的4个算法的模版,注意有的为有向图的代码,有的为无向图代码,自行修改一下便是(有各种优化版本哦):


1.Bellman-Ford算法(存储每一条边的信息即可):点击查看代码

2.Dijkstra算法(邻接矩阵储存,无优化版)点击查看代码

     Dijkstra算法(邻接表储存,优先队列优化版)点击查看代码

3.Floyd-Warshall算法(邻接矩阵储存,这里只给出核心代码):点击查看代码

4.SPFA算法(邻接表储存,无优化版):点击查看代码

   SPFA算法(邻接表储存,SLF和LLL优化版):点击查看代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值