该算法可用于计算正权图上的单源最短路(SSSP),即从单个点源出发,到所有结点的最短路。(同时适用于有向图和无向图)
memset(v,0,sizeof(v));//标记点是否找过;
for(i=0;i<n;i++)
{
d[i]=(i==0?0:INF);//INF代表无穷
}
for(i=0;i<n;i++)
{
int x,m=INF;
for(y=0;y<n;y++)
if(v[y]==0&&d[y]<m)
{
m=d[x=y];
}
v[x]=1;
for(y=0;y<n;y++)
{
if(d[y]>d[x]+w[x][y])
d[y]=d[x]+w[x][y];
}
}
浙公网安备 33010602011771号