博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dijkstra
阅读量:7059 次
发布时间:2019-06-28

本文共 1097 字,大约阅读时间需要 3 分钟。

d[i]——从源点到 i点的最短距离

f[i]——i的父节点
p[i]——标记i的最短路是否确定:0 不确定;1 确定
d[]置无穷大

d[s]=0;

for (k=1;k<=n;k++){
    min
=∞;
   
for (j=1;j<=n;j++)
       
if (p[j]==0 && d[j]<min){
            min
=d[j]; i=j;
        }
   
if (min=∞) break;
   
    p
=1;
   
for (j=1;j<=n;j++)
       
if (p[j]==0 && g[i][j]>0 && d[i]+s[i][j]<d[j]){
            d[j]
=d[i]+g[i][j];
            f[j]
=i;
        }
}

 

08.8.17(在学校学dijkstra)

#include<stdio.h>
   
long i,j,k,m,n;
   
long dist[101],vis[101];
   
long w[101][101];
   
long s,t;
void init(){
   
long x,y,z;
    scanf(
"%ld%ld",&n,&m);
   
for (i=1;i<=n;i++)
       
for(j=1;j<=n;j++)
            w[i][j]
=100000000;
    
for(i=1;i<=n;i++){
        dist[i]
=100000000;    
        vis[i]
=1;
     }
    
for(i=1;i<=m;i++){
         scanf(
"%ld%ld%ld",&x,&y,&z);                 
         w[x][y]
=z;w[y][x]=z;
     }
     scanf(
"%ld%ld",&s,&t);         
}
void work(){
   
long min;
    dist[s]
=0;
   
do{
        min
=100000000;
        k
=0;
       
for(i=1;i<=n;i++)
         
if(vis[i]==1 && dist[i]<min){
              min
=dist[i];
              k
=i;            
        }
       
if(k==0)break;
        vis[k]
=0;
       
       
for(i=1;i<=n;i++)
           
if(dist[i]>(min+w[k][i]))
                dist[i]
=min+w[k][i];
    }
while(true);   
}
void out(){
    printf(
"%ld",dist[t]);
}
main(){
    freopen(
"dijkstra.in","r",stdin);
    freopen(
"dijkstra.out","w",stdout);
        init();
        work();
       
out();                            
   
return 0;
}

转载于:https://www.cnblogs.com/yanrui7098/archive/2009/11/01/1593915.html

你可能感兴趣的文章
【原创】Percona 之 tcprstat 安装及使用
查看>>
oracle中drop后的表清楚表的含义
查看>>
js笔记——js数据类型转换
查看>>
Hadoop2.5.2集群部署(完全分布式)
查看>>
禁止sshd暴力尝试方案
查看>>
PHP数组
查看>>
rundeck创建普通apitoken
查看>>
./sdb devices ???????????? no permissions
查看>>
8月共处理钓鱼网站1862个:非CN域名达1855个
查看>>
网络数据安全
查看>>
五子棋局域网对战项目(下)
查看>>
微服务架构—优雅停机方案
查看>>
DataV接入ECharts图表库 可视化利器强强联手
查看>>
将Web应用性能提高十倍的10条建议
查看>>
七个不容易被发现的生成对抗网络(GAN)用例
查看>>
Cisco 安全技术系列之一:2层***防范技术
查看>>
我的友情链接
查看>>
Hello World
查看>>
鼠标放在控件上显示提示信息
查看>>
Bitbucket Project 过大不能 Pull 的解决方法
查看>>