图论
eeeeeetiger
这个作者很懒,什么都没留下…
展开
-
Dijkstra算法简介
文章目录简单介绍代码简单介绍Dijkstra算法是单源最短路算法,采用贪心思想。假设图有n个顶点,从源点1出发,计算其他各个顶点距离源点1的最短路径。使用dis数组存储各个点距离源点1的距离,初始化dis[1]为0,其他为+∞+\infty+∞。算法步骤如下:Created with Raphaël 2.2.0开始选择离源点最近的点(dis数组中值最小)扩展该点(打标记)松弛从该点出发的边...原创 2018-12-04 11:25:20 · 293 阅读 · 0 评论 -
SPFA算法简介
Bellman-Ford算法Dijkstra算法要求图中不可有负权边,如果有负权边呢?对于存在负权边的图,我们采用Bellman-Ford算法来求解。Bellman-Ford算法基于迭代思想。假设图有n个顶点,m条边,源点为1,基本步骤如下:初始化dis数组dis[1]初始化为0其他初始化为+∞+\infty+∞反复对m条边进行松弛操作,总共进行n-1次。判断是否还会进行松弛...原创 2018-12-04 15:36:34 · 702 阅读 · 1 评论 -
次短路小结
次短路有两种计算方法。方法一、更新最短路时同步更新次短路对于一条端点为u、v的边,点v的次短路,要么是点u的次短路加边权,要么是点u的最短路加边权。设两个数组,dist1存储最短路,dist2存储次短路,则存在下面的等式:dist2[v]=min{dist2[u]+wdist1[u]+wdist1[u]+w>dist1[v] dist2[v]=min\left\{\begi...原创 2018-12-04 18:49:30 · 413 阅读 · 0 评论