文章目录
迪杰斯特拉(Dijkstra)算法是最短路径算法,用于计算一个节点到其他节点的最短路径。
它的主要特点是以起始点为中心一层一层的向外走(广度优先搜索),直到找到终点
算法不好概括,直接来看个例子
例子
数据结构
- dist[]:起点到未被并入的顶点的最短距离
【类比】Prim算法中的lowCost[]:当前生成树到为并入的顶点的最短距离 - path[]:起点到该顶点的最短路径
- S[]:已并入的顶点
步骤
【第一步】
【第二步】
【步骤三】
【步骤四】
【步骤五】
【步骤六】
【算法结束】
- dist[v]:起点0到v的最短路径长度
- path[v]:起点0到v的最短路径