以上图作为示例,选取u为源点,然后计算u到其他顶点的最短距离。
先假设dist[i]为u到i的最短路径的长度。\
cost[x,y]表示x到y的权值。
①找出与u相邻的顶点中距离最短的一条,得:dist[X]=1;
②和u或者x的最短路径为cost[x,y]=1,所以dist[y]=cost(u,x)+cost(x,y)=2;
③下个结点是w,dist[w]=min{cost(u,w), cost(u,x)+cost(u,w), cost(u,x)+cost(x,y)+coat(y,w)}=cost(u,x)+cost(x,y)+coat(y,w) = 3;
④dist[u,v]=min{cost(u,v), cost(u,x)+cost(x,v)}=st(u,v),=2;
⑤dist(u,z)=4;