Dijkstra

//-----------Dijkstra-----------
int map[N][N];
int dist[N];
bool flag[N];

void Dijkstra(int n,int s)
{
int i,j,u;
for(i=1;i<=n;i++)
{
dist[i]
=map[s][i];
flag[i]
=false;
}
flag[s]
=true;

for(i=1;i<n;i++)
{
u
=s;
for(j=1;j<=n;j++)
{
if(!flag[j] && dist[j]<dist[u])
u
=j;
}
if(u==s) break;
flag[u]
=true;

for(j=1;j<=n;j++)
{
if(!flag[j] && dist[u]+map[u][j]<dist[j])
dist[j]
=dist[u]+map[u][j];
}
}
}

写的不对或不好的地方,请大虾多多指教!    ——Never

原文地址:https://www.cnblogs.com/fornever/p/2176150.html