多源最短路:每一对顶点之间的最短路径

本文介绍了Floyd算法用于求解图中每一对顶点之间的最短路径。通过邻接矩阵表示法,详细展示了算法如何逐步更新最短路径。以一个有向网图为例,解释了算法如何检查并更新路径长度,最后给出了算法的时间复杂度为O(|V|^3)。
摘要由CSDN通过智能技术生成

在一个图中用求单源最短路的方法对每一个顶点执行一次,即可得到每一对顶点的最短路径。由弗洛伊德提出的一个算法,和Dijkstra类似,它们得出的最短路径都是一步一步组合得到的。Floyd算法适合在稠密的矩阵图中使用,所以下面的例子我也用邻接矩阵表示法的方式来理解Floyd算法的运用。

看这样一个例子:

这是一个有向网图。表示这个图的邻接矩阵为:

首先看V0这个结点,从该图的邻接矩阵中,看0行0列以外的,且非对角线的元素。首先是D[ 1 ][ 2 ]=2。然后看D[ 1 ][ 2 ]元素在0行0列上的投影,D[ 0 ][ 2 ]+D[ 1 ][ 0 ]=11+6=17,因为17>2,所以不用跟新最短路径长度。然后矩阵里另一个元素D[ 2 ][ 1 ]=∞,在0行0列上的投影D[ 2 ][ 0 ]+D[ 0 ][ 1 ]=3+4=7,而7<∞,所以D[ 2 ][ 1 ]即顶点2到顶点1的最短路径长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值