-
最短路径-Dijkstra(迪杰斯特拉)算法
-
网图的最短路:
最短路径,是指两顶点之间经过的边上权值之和最小的路径,并且我们称路径的第一个顶点是源点,最后一个顶点是终点
-
Dijkstra(迪杰斯特拉)算法:
概况:
按路径长度递增的次序产生的最短路径算法,通过一步步计算出路径之间顶点的最短路径,在此过程中都是基于已经求出的最短路径基础上,求得更远顶点的最短路径
思想:
设当前已经求得的最短路径边集为{MT},当前最短路终点与相连点(不在MT中)的距离(与起点距离)集合为{WP}
每次都在WP中取与当前终点最近的一个点,将最短边L加入最短路径集{MT},记此时新的终点为NewEnd
扫描不在最短路径中的所有点,如果 NewEnd+L<Dis(表示起点到当前扫描点的距离),更新最短路
相似算法:
在最小生成树上用过类似思想,只不过最小生成树要求全部点都要连通
留个传送门:最小生成树-Prim(普里姆)算法
图解:
两个工具ÿ