资源简介
这是算法分析中实现单源最短路径问题的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的图像处理
评论
共有 条评论