void dj(int n)
{
int k;
for(int i=1;i<=n;i++)
{
dist[i]=mmap[1][i];//这里假设1为原点
}
v[1]=1;//走到原点点
dist[1]=0;//原点到原点的距离为0
for(int i=1;i<=n;i++)
{
mmin=INF;//无限大
k=0;
for(int j=1;j<=n;j++)//距离点i最近的可以到达的点
{
if(!v[j]&&dist[j]<mmin)
{
mmin=dist[j];
k=j;
}
}
v[k]=1;
for(int j=1;j<=n;j++)
{
if(!v[j]&&dist[k]+mmap[k][j]<dist[j])
dist[j]=dist[k]+mmap[k][j];
}
}
}
迪杰斯特拉算法模板
最新推荐文章于 2022-11-18 18:06:46 发布