最短路径--弗洛伊德算法[求任意一对顶点间的最短路径]
2020-12-13 02:04
标签:如何 int 实现 没有 广度优先搜索 方便 技术 存储 include 转自大神:https://www.cnblogs.com/wangyuliang/p/9216365.html !!!!!!!!!!!!!!!!!!!!!!!!!注意 迪杰斯特拉算法和弗洛伊德算法(求最短路径) 都是有向图!!!!单边的 最短路径--弗洛伊德算法[求任意一对顶点间的最短路径] 标签:如何 int 实现 没有 广度优先搜索 方便 技术 存储 include 原文地址:https://www.cnblogs.com/yundong333/p/11025887.html
1 for (i = 1; i e[i][1] + e[1][j])
6 e[i][j] = e[i][1] + e[1][j];
7 }
8 }
1 //经过1号顶点
2 for(i=1;i e[i][1]+e[1][j]) e[i][j]=e[i][1]+e[1][j];
5 //经过2号顶点
6 for(i=1;i e[i][2]+e[2][j]) e[i][j]=e[i][2]+e[2][j];
1 for(k=1;ke[i][k]+e[k][j])
5 e[i][j]=e[i][k]+e[k][j];
//代表中转点的是K k=1:1号中转 k=2:在一号中转的基础上进行2号中转 下面的两个for语句就是这个矩阵在调整距离
1 #include
2 int main()
3 {
4 int e[10][10],k,i,j,n,m,t1,t2,t3;
5 int inf=99999999; //用inf(infinity的缩写)存储一个我们认为的正无穷值
6 //读入n和m,n表示顶点个数,m表示边的条数
7 scanf("%d %d",&n,&m);
8 //初始化
9 for(i=1;ie[i][k]+e[k][j] )
24 e[i][j]=e[i][k]+e[k][j];
25 //输出最终的结果
26 for(i=1;i
文章标题:最短路径--弗洛伊德算法[求任意一对顶点间的最短路径]
文章链接:http://soscw.com/index.php/essay/24838.html