資源簡介
這是算法分析中實現單源最短路徑問題的C++程序
代碼片段和文件信息
#include?
int?v;
int?n;
float?a[512][512];
float?dist[512];
int?prev[512];
float?MAX_VALUE=10000000;
void?dijkstra()
{
if(v<1||v>n)
return;
bool?*s=new?bool[n+1];
for(int?i=1;i<=n;i++)
{
dist[i]=a[v][i];
s[i]=false;
if(dist[i]==MAX_VALUE)
prev[i]=0;
else
prev[i]=v;
}
dist[v]=0;
s[v]=true;
for(int?i1=1;i1 {
float?temp=MAX_VALUE;
int?u=v;
for(int?j=1;j<=n;j++)
if((!s[j])&&(dist[j] {
u=j;
temp=dist[j];
}
s[u]=true;
for(int?j1=1;j1<=n;j1++)
if((!s[j1])&&(a[u][j1] {
float?newdist=dist[u]+a[u][j1];
if(newdist {
dist
- 上一篇:最大m子段和各個下標的計算方法含代碼
- 下一篇:基于MFC的圖像處理
評論
共有 條評論