Dijkstra算法单源最短路径求法步骤

先给出一个无向图

Dijkstra算法单源最短路径求法步骤_第1张图片

用 Dijkstra 算法找出以 A 为起点的单源最短路径步骤如下

Dijkstra算法单源最短路径求法步骤_第2张图片
迪杰斯特拉(Dijkstra)负值边问题

迪杰斯特拉(Dijkstra)算法:不允许负值边的存在,教材解释不够具体,记录一个解释示例。

示例解释

Dijkstra算法单源最短路径求法步骤_第3张图片

迪杰斯特拉(Dijkstra)类似普里姆(Prim)算法,基于贪心算法的策略,
当顶点 2 被收录、确定了最短路径之后,再收录顶点 3,以及边 <2,3>,此时顶点 2、3 之间的最短路径是 2->3,等遇到负值边 < 3,4 > 后就会发现,顶点 2、3 之间的最短路径其实是 2->4->3,
但已收录的无法更新,即出现算法错误。

你可能感兴趣的:(C系列,算法,数据结构)