该算法可用于计算正权图上的单源最短路(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];
    }
}