2013-11-19 图专题之02Floyd算法(动态规划题)
来源:互联网 发布:mac上安装nodejs 编辑:程序博客网 时间:2024/06/11 10:48
题目
程序实现Floyd算法
注意事项
注意思想和趟数
复杂度
时间复杂度
O(n*n*n)
空间复杂度
O(n*n)
程序实现
#include<stdio.h>#include<stdlib.h>int vertix_num;int **graph_weight;int **graph_distance;void output_graph(){int i;int j;for( i = 0; i < vertix_num;i++){for(j = 0; j < vertix_num; j++){printf("%-4d ", graph_weight[i][j]);}printf("\n");}}void output_distance(){int i;int j;for( i = 0; i < vertix_num;i++){for(j = 0; j < vertix_num; j++){printf("%-4d ", graph_distance[i][j]);}printf("\n");}printf("\n");}void exec_alg(){int k;int i;int j;for( k = 0; k < vertix_num;k++){for( i = 0; i < vertix_num;i++){for(j = 0; j < vertix_num; j++){if(i==j || i == k || k==j){continue;}if(graph_distance[i][j] > graph_distance[i][k] + graph_distance[k][j]){//printf("123\n");graph_distance[i][j] = graph_distance[i][k] + graph_distance[k][j];//printf("123\n");}}}//output_distance();}}void produce_the_graph(){graph_weight = (int **)malloc(sizeof(int *) * vertix_num);graph_distance = (int **)malloc(sizeof(int *) * vertix_num);int i;for(i = 0; i < vertix_num; i++){graph_weight[i] = (int *)malloc(sizeof(int ) * vertix_num);graph_distance[i] = (int *)malloc(sizeof(int ) * vertix_num);}int j;for(i = 0; i < vertix_num; i++){for(j = 0; j< vertix_num; j++){scanf("%d", &graph_weight[i][j]);graph_distance[i][j] = graph_weight[i][j];}}}void free_mem(){int i;for(i = 0; i < vertix_num; i++){free(graph_weight[i]);free(graph_distance[i]);}free(graph_weight);free(graph_distance);}int main(void){printf("1000 means +OO\n");scanf("%d", &vertix_num);produce_the_graph();exec_alg();printf("\nthe minest distance arry is :\n");output_distance();free_mem();}
- 2013-11-19 图专题之02Floyd算法(动态规划题)
- floyd算法与动态规划
- 动态规划之所有点对的最短路径问题(Floyd算法)
- 动态规划-Warshall算法和Floyd算法
- 动态规划 warshall算法、 Floyd算法
- 动态规划专题之滑雪
- 动态规划 之 序列专题
- 动态规划专题之zoj1013
- 动态规划专题:算法合集之《基于连通性状态压缩动态规划问题》
- 从floyd算法学习动态规划
- 动态规划——3 floyd算法
- 从floyd算法学习动态规划
- 动态规划、最短路径、Floyd算法
- 探求Floyd算法的动态规划本质
- 探求Floyd算法的动态规划本质
- 动态规划的Warshall和Floyd算法:
- floyd算法和动态规划的关系
- 专题三-动态规划算法总结
- 用arg_list查找n个数字中的最大者
- java基础 文件file的应用
- 注意啦!新站千万不可用的网站推广方法
- 支持向量机(SVM)基础
- Unix环境高级编程(第二版)linux环境下源码编译
- 2013-11-19 图专题之02Floyd算法(动态规划题)
- 读取apk缩略图 根据文件路径取得缩略图
- VS2008和MATLAB混合编程基础
- AE加载SHP
- C#接口编程(一)
- spring3+hibernate4整合(原创)
- 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果及其他。
- python日期时间字符串转换成unix时间戳
- icon