目录
1.问题描述
对于有向带权图G=(V,E),其中每条边的权值都是非负实数。给定V中的一个节点(称为源点),计算源点到其他各节点之间的最短路径,即单源最短路径。
2.问题分析
Dijkstra算法是解决单源最短路径问题的贪心算法。Dijkstra算法基本思路是先求出源点离当前节点最短的一条路径,然后根据当前最短路径末端点能够到达的点求出下一条离源点最近的路径,直到求出源点到其他各节点的最短路径。
3.算法设计
将节点集合V划分为两部分——集合S和V-S(节点总的集合减去已经确定最短路径的点的集合)。其中,集合S中的节点到源点的最短路径已经确定,集合S中的节点到源点的最短路径已经确定,集合V-S中节点的路径称为特殊路径,数组dist[]用于记录从源点到每个节点的最短特殊路径的长度。Dijkstra算法的贪心策略是选择最短的特殊路径长度dist[t],将节点t添加