弗洛伊德算法求解图中任意一对顶点之间的最短路径,其路径信息用二维数组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佛洛伊德算法相关推荐

  1. 最短路径-Floyd(佛洛伊德算法)

    佛洛伊德算法时间复杂度为O(n^3),其中n为顶点的个数. Floyd可求出任何一对顶点之间的最短路径.允许图中有带负权值的边,但是不允许有包含带负权值的边组成的回路. #include <io ...

  2. 最短路径之佛洛伊德算法

    Floyd算法(即佛洛伊德算法)用来解决全源最短路径问题,即对给定的图G(V,E),求任意两点u,v之间的最短路径长度,时间复杂度是O(n^3).由于时间复杂度是O(n^3),所以顶点数n一般限制在2 ...

  3. 66最短路径算法-佛洛伊德算法

  4. floyd 判圈算法 UVa 11549 计算器谜题

    题目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  5. leetcode202(Floyd判圈算法(龟兔赛跑算法))

    Write an algorithm to determine if a number is "happy". 写出一个算法确定一个数是不是快乐数. A happy number ...

  6. Floyd判圈算法(Floyd's cycle detection

    Floyd判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm).该算法由美国科学家罗伯特·弗洛伊德发明 ...

  7. 坐在马桶上看算法:只有五行的Floyd最短路算法

    坐在马桶上看算法:只有五行的Floyd最短路算法 此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在"Communications of the ACM" ...

  8. floyd判环算法(龟兔赛跑算法)

    floyd判环算法(龟兔赛跑算法) 注意,这个算法是用来判断一条链+一条环的图,环的长度或者环与链的交界处的,所以此floyd非彼floyd(虽然都是一个人想出来的). (图不是我的) 如果只要求环的 ...

  9. 【啊哈!算法】算法6:只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

  10. 【算法】只有五行的Floyd最短路算法

     暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程. 上图中有4个城市8条公路,公路上的数字 ...

最新文章

  1. 桌子上有个盘子_日本留学生活:留学生在餐厅刷盘子的传闻,竟然在自己身上上演...
  2. mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速
  3. 第二章 序列比对——Needleman-Wunsch全局比对
  4. 最全的大数据解决方案(多图)
  5. Android文本框EditText显示为多行
  6. Python高级特性:切片
  7. swiper默认选中_Swiper
  8. java html api 百度云,Javase-6.0_中文API_HTML(最新更新)
  9. 带有Gluon Ignite和Dagger的JavaFX中的依赖注入
  10. Spark集群完全分布式安装部署
  11. 面向对象:MATLAB的自定义类 [MATLAB]
  12. 安卓第三天笔记--通知-进度条-时期
  13. win10系统pyCharm安装及最新2018激活码
  14. 我给自己定了个目标,我要看完这95本书
  15. 现代互联网的TCP拥塞控制(CC)算法评谈
  16. matlab处理fits文件,读取 FITS 文件中的数据
  17. 知识树软件的IPO图
  18. 计算机毕业设计基于ssm乒乓球裁判管理系统
  19. 苹果电脑怎么设置和修改开机密码?
  20. 经历两个月茫然期后粪发图强,四面美团定级3-1,拿到35*16offer

热门文章

  1. 计算机三级选择题怎么学,计算机三级考试复习经验
  2. 华为与android连接方法,华为Mate8(安卓手机)连接Mac的方法和技巧
  3. linux服务器巡检报告模板
  4. Ubantu下使用opencv库编写打开摄像头压缩视频程序
  5. pytorch深度学习模型训练分类模板
  6. 数据库事务与事务隔离级别说明
  7. AndroidStuido提示Git命令找不到问题解决
  8. Wad Manager的下载和运行
  9. h5页面作为传播媒介的推广方式,如何统计app安装渠道统计?
  10. 前后端分离就必须 SPA 吗?