Floyed-Warshall最短路径算法
2018-02-24 20:01
357 查看
代码如下:
#include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <math.h> using namespace std; const int inf=9999; int main() { int e[10][10],n,m,a,b,c; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) e[i][j]=0; else e[i][j]=inf; for(int i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&c); e[a][b]=c; } //Floyed-Warshall算法核心部分。 for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(e[i][j]>e[i][k]+e[k][j]) e[i][j]=e[i][k]+e[k][j]; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) printf("%5d",e[i][j]); printf("\n"); } return 0; } /* 4 8 1 2 2 1 3 6 1 4 4 2 3 3 3 1 7 3 4 1 4 1 5 4 3 12 */
//Floyed-Warshall算法核心部分。 for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(e[i][k]<inf&&e[k][i]<inf&&e[i][j]>e[i][k]+e[k][j]) e[i][j]=e[i][k]+e[k][j];
相关文章推荐
- 最短路径(一)—Floyd-Warshall(只有五行的算法)
- 多源最短路径算法---Floyd-Warshall
- 最短路径算法——Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson,无一幸免
- 【算法】最短路径-弗洛伊德(Floyd-Warshall)
- Floyd-Warshall 算法-- 最短路径(适合节点密集的图)
- Floyed算法求多源最短路径
- Floyd-Warshall解决多源最短路径问题-(只有五行的算法)
- 最短路径算法——Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson
- POJ 2240 Arbitrage 最短路径 Floyed-Warshall
- Floyd-Warshall 全源最短路径算法
- Dijkstra/Floyd-Warshall 最短路径算法
- 最短路径问题Floyed-Warshall(图…
- 从零开始学算法(五)最短路径之Floyed-Warshall算法
- [图的最短路径算法]Dijkstra, Bellman-Ford, Floyd-Warshall
- 最短路径算法----Floyd-warshall(十字交叉算法证明)
- Floyed 算法求最短路径
- 最短路径算法----Dijkstra Bellman-Ford Floyd-Warshall Johnson
- 【算法导论】【Floyd-Warshall 算法】每对节点之间的最短路径
- Floyd-Warshall 算法-- 最短路径(适合节点密集的图)
- 多路径路由算法选择(7)——最短路径算法Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson