您现在的位置是:首页 > 技术资料 > Floyd-Warshall算法
推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

Floyd-Warshall算法

更新时间:2026-03-19 08:35:26 大小:19K 上传用户:江岚查看TA发布的资源 标签:floyd算法warshall 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

一、算法概述

Floyd-Warshall算法是一种用于求解图中所有顶点间最短路径的动态规划算法,由Robert Floyd于1962年提出,其思想源自Stephen Warshall在1962年发表的求传递闭包的算法。该算法能够处理带权有向图或无向图,包括含有负权边的情况,但不能处理包含负权回路的图(因为负权回路会导致路径长度无限减小)。算法的时间复杂度为O(n³),其中n为图中顶点的数量,空间复杂度为O(n²),适用于中等规模的图计算。

二、基本原理

(一)核心思想

算法基于动态规划的思想,通过逐步引入中间顶点来更新任意两点间的最短路径。具体而言,设d[k][i][j]表示从顶点i到顶点j,且中间顶点仅允许使用集合{1, 2, ..., k}时的最短路径长度。其状态转移方程如下:

d[k][i][j] = min

其中,d[0][i][j]为初始状态,即图的邻接矩阵:若i和j直接相连,则为边的权值;若i=j,则为0;否则为无穷大(表示不可达)。

(二)空间优化

由于计算d[k][i][j]仅依赖于d[k-1][...],因此可使用二维数组替代三维数组,通过原地更新实现空间优化,此时状态转移方程简化为:

d[i][j] = min

部分文件列表

文件名 大小
Floyd-Warshall算法.docx 19K

【关注B站账户领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载