Floyd佛洛伊德算法
弗洛伊德算法求解图中任意一对顶点之间的最短路径,其路径信息用二维数组path[ ][ ]存储,另外还需维护一个二位数组A(k)[ i ] [ j ]用来存储顶点i经由顶点k作为中间顶点到达顶点j的最短路径长度,当然如果以k作为中间顶点时路径较之前边长,则数组A中的路径长度仍不变,与其对应的path数组也不会将k存入对应位置。
#include<stdio.h>//弗洛伊德算法求解图中任意一对顶点之间的最短路径,其需要维护两个二维数组 A(k)[i][j]和path[i][j] //k表示从顶点i到顶点j的路径中加入顶点作为中间顶点,path[i][j]中存储从顶点i到顶点j要经过的中间顶点void Floyd(Mgrap G,int path[][]) {int i,j,k,A[MAXSIZE][MAXSIZE];//初始化数组A和pathfor(i = 0;i < G.vexnum;++i){for(j = 0;j < G.vexnum;++j){A[i][j] = G.edges[i][j];path[i][j] = -1; //一开始没有中间顶点 故给值-1 }}//关键步骤三重循环for(k = 0;k < G.vexnum;++k){for(i = 0;i < G.vexnum; ++i){for(j = 0;j < G.vexnum;++j){if(A[i][j] < A[i][k] + A[k][j]){A[i][j] = A[i][k] +A[k][j];path[i][j] = k;}}}} }
转载于:https://www.cnblogs.com/strolling-leisurely/p/11380591.html
Floyd佛洛伊德算法相关推荐
- 最短路径-Floyd(佛洛伊德算法)
佛洛伊德算法时间复杂度为O(n^3),其中n为顶点的个数. Floyd可求出任何一对顶点之间的最短路径.允许图中有带负权值的边,但是不允许有包含带负权值的边组成的回路. #include <io ...
- 最短路径之佛洛伊德算法
Floyd算法(即佛洛伊德算法)用来解决全源最短路径问题,即对给定的图G(V,E),求任意两点u,v之间的最短路径长度,时间复杂度是O(n^3).由于时间复杂度是O(n^3),所以顶点数n一般限制在2 ...
- 66最短路径算法-佛洛伊德算法
- floyd 判圈算法 UVa 11549 计算器谜题
题目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- leetcode202(Floyd判圈算法(龟兔赛跑算法))
Write an algorithm to determine if a number is "happy". 写出一个算法确定一个数是不是快乐数. A happy number ...
- Floyd判圈算法(Floyd's cycle detection
Floyd判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm).该算法由美国科学家罗伯特·弗洛伊德发明 ...
- 坐在马桶上看算法:只有五行的Floyd最短路算法
坐在马桶上看算法:只有五行的Floyd最短路算法 此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在"Communications of the ACM" ...
- floyd判环算法(龟兔赛跑算法)
floyd判环算法(龟兔赛跑算法) 注意,这个算法是用来判断一条链+一条环的图,环的长度或者环与链的交界处的,所以此floyd非彼floyd(虽然都是一个人想出来的). (图不是我的) 如果只要求环的 ...
- 【啊哈!算法】算法6:只有五行的Floyd最短路算法
暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程. 上图中有 ...
- 【算法】只有五行的Floyd最短路算法
暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程. 上图中有4个城市8条公路,公路上的数字 ...
最新文章
- 桌子上有个盘子_日本留学生活:留学生在餐厅刷盘子的传闻,竟然在自己身上上演...
- mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速
- 第二章 序列比对——Needleman-Wunsch全局比对
- 最全的大数据解决方案(多图)
- Android文本框EditText显示为多行
- Python高级特性:切片
- swiper默认选中_Swiper
- java html api 百度云,Javase-6.0_中文API_HTML(最新更新)
- 带有Gluon Ignite和Dagger的JavaFX中的依赖注入
- Spark集群完全分布式安装部署
- 面向对象:MATLAB的自定义类 [MATLAB]
- 安卓第三天笔记--通知-进度条-时期
- win10系统pyCharm安装及最新2018激活码
- 我给自己定了个目标,我要看完这95本书
- 现代互联网的TCP拥塞控制(CC)算法评谈
- matlab处理fits文件,读取 FITS 文件中的数据
- 知识树软件的IPO图
- 计算机毕业设计基于ssm乒乓球裁判管理系统
- 苹果电脑怎么设置和修改开机密码?
- 经历两个月茫然期后粪发图强,四面美团定级3-1,拿到35*16offer