Dijkstra算法
一个点到其余个点的算法
仍用邻接矩阵的方法存储图
使用dis[]初始化为:存储1号顶点到其余顶点的初始路径
此时dis数组的值被称为最短路径的估计值
松弛
算法的基本思想:
每次找到离源点最近的一个顶点,然后以该顶点为中心开始扩展,最终得到源点到其余所有点的最短路径。
基本步骤如下:
算法核心代码:
for (i = 1; i <= n; i++)
{
dis[i] = e[1][i]; //对dis进行初始化
}
for (i = 1; i <= n; i++)
{
book[i] = 0; //book数组用来标记1到i点是否已经是最小路径
}
book[1] = 1;
//Dijksta算法核心语句
for (i = 1; i <= n; i++)
{
min = inf;
for (j