SPFA(Shortest Path Faster Algorithm)(队列优化)算法是求单源最短路径的一种算法,
它还有一个重要的功能是 判负环 (在差分约束系统中会得以体现),
在Bellman-ford算法的基础上加上一个队列优化 ,
减少了冗余的松弛操作,是一种高效的最短路算法。
举例:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fb20af5b3381512e7e2d1d0da48ae78b.png)
思路:
就是把dijkstra算法中对起始点到其他点的距离的最小值的代码换成了用一个队列去进行判断。其他的同dijkstra算法相同。
。
。
。
初始化:
除源点赋0外,其他都赋值无穷
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/19c9df19da4d6c9d63783afc2f1a1223.png)
此时把v1加入队列,
现在开始进入循环,直到队列为空才退出循环
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c61652b28c162a6e2d626837e9c1855d.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2f908d7d7c89b25138b8b8a7fef58c5b.png)