const int maxn=605;
const int inf=8000000;
void dij(int n,int g[][maxn],int s,int d[])
{
int i,r;
int minc,used[n];
for(i=0;i<n;i++)
{
d[i]=inf;used[i]=0;
}
d[s]=0;
for(int k=0;k<n;k++)
{
minc=inf;
for(i=0;i<n;i++)
if(!used[i]&&d[i]<minc) {minc=d[i];r=i;}
for(i=0;i<n;i++)
{
if(!used[i]&&&g[r][i]<inf&&d[i]>d[r]+g[r][i])
d[i]=d[r]+g[r][i];
used[r]=1;
}
}
}
本文介绍了一个基于Dijkstra算法实现的最短路径查找方法。通过使用常数数组和布尔型数组来记录节点的距离与是否被访问状态,该算法能够有效地找出图中从起点到各个顶点的最短路径。
7165

被折叠的 条评论
为什么被折叠?



