数据结构(6.4_4)——Floyd算法

embedded/2024/10/15 22:30:20/

Floyd算法

第一步:建立两个二维数组,一个用来存放所有顶点,一个用来存放顶点之间的中转点

第二步:循环遍历A矩阵,若A^{k-1}[i][j]>A^{k-1}[i][k]+A^{k-1}[k][j],则A^{k}[i][j]=A^{k-1}[i][k]+A^{k-1}[k][j]path^k[i][j]=k;否则

A^kpath^k保持原值,循环完所有i,j后更新数组并且k+1

第三步:重复第二步操作

初始:

第0轮:

第一轮: 

 

第二轮:

 

总:

 

代码实现:

 

时间复杂度和空间复杂度:

 

Floyd算法实例

1、

v0;

v1;

v2; 

v3; 

 

v4; 循环后无顶点需要更新

寻找最短路径

寻找v0——v4

练习:Floyd算法用于负权图 

不能解决的问题

 

总结:

 


http://www.ppmy.cn/embedded/102728.html

相关文章

用爬虫玩转石墨文档细解

​ ​ 您好,我是程序员小羊! 前言 石墨文档是一款受欢迎的在线协作工具,它允许多人实时编辑和共享文档。通过爬虫技术,我们可以自动化地获取石墨文档中的内容,进行数据分析或备份。不过,在使用爬虫技术时&a…

unity超简单多语言管理类

自用记录贴&#xff0c;针对小体量工程写的一个最简单的多语言管理脚本。 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.Networking;/// <summary> /// 多语言管理类 /…

【netty系列-08】深入Netty组件底层原理和基本实现

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

算法练习题02:ISBN码

问题描述&#xff1a; 每本正式出版的图书都有一个对应的 ISBN 码。ISBN 包含九位数字、一位校验码和三个分隔符&#xff0c;其格式规定为 x-xxx-xxxxx-x&#xff0c;其中分隔符为键盘上的减号 -&#xff0c;最后一位为校验码。 例如&#xff0c;0 代表英语&#xff0c;紧跟着…

MSSQL 工具注入(第一关)

简介 SQL注入是一种安全漏洞&#xff0c;通过它可以执行意外的SQL命令或访问数据库中的信息。MSSQL注入通常发生在应用程序将用户输入作为SQL查询的一部分执行时&#xff0c;而没有对输入进行适当的验证或清理。 以下是MSSQL手工注入的流程&#xff1a; 一、打开靶场选择第一关…

灵神算法题单——定长滑动窗口(进阶)

2134. 最少交换次数来组合所有的 1 II 断环成链滑动窗口 思路先算出数组中1有多少&#xff0c;然后看这么长的窗口里0最少是多少&#xff0c;此时即为最少交换次数。 首先遍历算出1的数量k&#xff0c;然后用Insert拼接数组&#xff0c;从而实现循环。 然后双指针遍历数组&…

【计算机网络】计算机网络的概念

什么是计算机网络&#xff1f; 计算机网络&#xff08;Computer networking&#xff09;是一个将众多分散的、自治的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 计算机网络、互连网、互联网的区别 计算机…

Python算法工程师面试整理-线性代数

1. 向量和矩阵 ● 向量:表示一个n维空间中的点,通常以列向量或行向量表示。 ○ 向量运算:加法、标量乘法、点积(内积)、叉积(外积)。 ● 矩阵:由行和列组成的二维数组。 ○ 矩