?? dijkstra.txt
字號(hào):
int value[MaxSize][MaxSize];
//下面算法中將不考慮路徑的存儲(chǔ),只是求最短距離
int dijkstra(int n,int v)
{
bool s[MaxSize];//判斷是否在集合中
int i,j;
int dist[MaxSize];//存放v到各個(gè)點(diǎn)的最短距離
for(i=1;i<=n;i++)
{
dist[i]=value[v][i];
s[i]=false;
}
dist[v]=0;
s[v]=true;
for(i=1;i<=n;i++)
{
int temp=maxint;
int u=v;
for(j=1;j<=n;j++)
{
if((!s[j])&&(dist[j]<temp))
{
u=j;//記錄v到點(diǎn)中最小的點(diǎn)
temp=dist[j];
}
}//求出v點(diǎn)到各點(diǎn)的最短距離
s[u]=true;
//下面在u點(diǎn)的基礎(chǔ)上更新v到各點(diǎn)的距離
for(j=1;j<=n;j++)
if((!s[j])&&(value[u][j]<maxint))//未被訪問(wèn)且要有路
{
int newdist=dist[u]+value[u][j];//當(dāng)前v到j(luò)點(diǎn)的距離
if(newdist<dist[j])
dist[j]=newdist;
}
}
return dist[1];//返回到n點(diǎn)的最短距離
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -