图论浅析--最短路之Floyd
来源:互联网 发布:网络监控工程师 编辑:程序博客网 时间:2024/05/08 15:41
Floyd
计算每一对顶点间的最短路径。
需用邻接矩阵存储。
采用动态规划的原理处理,通过考虑最佳子路径来得到最佳路径。
算法原理:动态规划。
时间复杂度:O(n^3)。
算法思想
设
1、若最短路径经过点k,则
2、若最短路不经过点k,则
则,
在实际算法中,为了节约空间,可直接在原来空间上进行迭代,是空间降至二维。
if(dis[i][j]>dis[i][k]+dis[k][j]) dis[i][j]=dis[i][k]+dis[k][j];
Code
int n;int g[NUM][NUM];int dis[NUM][NUM];int pre[NUM][NUM];void Floyd(){ memset(dis,INF,sizeof(dis)); memset(pre,-1,sizeof(pre)); for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(i==j) { dis[i][i]=0; pre[i][i]=0; } else { dis[i][j]=g[i][j]; pre[i][j]=i; } for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(dis[i][j]>dis[i][k]+dis[k][j]) { dis[i][j]=dis[i][k]+dis[k][j]; pre[i][j]=pre[k][j]; }}
0 0
- 图论浅析--最短路之Floyd
- 图论浅析--最短路之Dijkstra
- 图论浅析--最短路之SPFA
- 最短路之floyd
- 最短路floyd与dijkstra浅析
- 【OI之路】03图论算法-2最短路之全源最短路(Floyd)
- 最短路之Floyd算法
- 最短路算法之Floyd
- 最短路之Floyd算法
- 图论算法 最短路 Floyd
- 图论浅析--最短路之Bellman-Ford
- hdu1385(最短路之floyd算法)
- 最短路算法之Floyd算法
- 最短路之Floyd(弗洛伊德)算法
- poj1125 最短路floyd
- poj1603 Floyd最短路
- poj1125(floyd最短路)
- 最短路-Floyd算法
- 鞭辟入里
- kafka集群安装、配置
- 南阳-47-过河问题(贪心)
- hdu 3342 Legal or Not(给一个有向图判断该图是否拓扑有序)
- squid配置
- 图论浅析--最短路之Floyd
- The Land of Justice
- @interface java注解
- Hduoj1040【水题】
- Controlling How NSThread and NSRunLoop Exit
- HTTP 错误 500.19 - Internal Server Error
- 图论浅析--最短路之Bellman-Ford
- Java:注解(Annotation)自定义注解入门
- HDU3415