数据结构C语言实现Floyed算法求最短路

本文记录了一次数据结构作业,使用Floyd算法求解有向图中每对顶点间的最短路径。通过邻接矩阵表示图,详细解释了算法步骤,包括初始化矩阵D和迭代更新最短路径。最后展示了在CodeBlocks上运行的程序结果。
摘要由CSDN通过智能技术生成

作业记录之Floyed

其实是个数据结构作业啦!干脆写在这里,加深印象(干脆之后就不复习了吧(不
妈妈这人怎么这么懒呀
为什么老师布置作业要用Floyed算法…因为好理解吗…?
之后也把作业搬运过来,顺便复习了orz

介绍一下Floyed

Floyed算法使用带权的邻接矩阵来表示有向网,求从顶点u到v的最短距离。
自己理解的是
1)先定义一个n阶方阵D,D里面存放的是:从两点间单边路径的权(即中间不经过其他点),如果两点之间没有边相连,则权为无穷大(自己到自己是0)。
2)对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短。如果是的话,就更新更新矩阵D。在这个过程中,不断开放顶点,不断迭代。如此,则D中就包含了最短通路径的信息。

时间复杂度:O(n^3)
空间复杂度:O(n^2)

示例翻课本(。

用Floyd算法求每对顶点间的最短路

描述:求出图的每队顶点的最短路
在这里插入图片描述
因为老师主要检验有向图,所以写的程序是有向图的邻接矩阵。如果是无向图,稍加修改就好了~

Path[i][j]:最短路径上顶点v的前一顶点的序号。
D[i][j]:记录顶点

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值