Floyd 算法学习笔记

技术Floyd 算法学习笔记 Floyd 算法学习笔记Floyd算法学习笔记(未完结)
前言
如有错误,欢迎各位 dalao 批评指出。
前置芝士:
1.邻接矩阵(Floyd要用邻接矩阵存图)
2.动态

弗洛伊德算法学习笔记

Floyd算法学习笔记(未完结)

前言

如有错误,欢迎大劳批评指出。

前置芝士:

1.邻接矩阵(弗洛伊德想用邻接矩阵保存图形)

2.动态规划的思路(最好学一学,没学的话影响不大)

1. Floyd 所解决问题的类型

我们可以发现,诸如Dijkstra、SPFA、Bellman Ford等最短路径算法都解决了单源点的最短路径问题,即确定起点或终点来寻找最短路径问题。然而,我们发现这些算法效率太低,无法解决具有多个源的最短路径问题,即具有多个起点和终点的最短路径问题。假设有\(n\)个点和\(m\)条边。在求解多源最短路径时,如果用上述三种算法求解,则需要分别做\(n\)次才能从每个点开始求解单源最短路径。最慢的时间复杂度是\ (o (nlogm),o (n 2m),o (n 2m) \),在稠密图中\ (m=n)因此,我们今天的主角Floyd就是为了解决多源最短路径问题而诞生的!

2. Floyd 的思想和基本做法

弗洛伊德算法的基本思想是动态规划。

让\(dp_{ij}\)代表从\(i\)到\(j\)的最短距离。(有\(n\)个点)

首先,这个\(dp\)数组的初始化是将输入边\(x-y\)的权重设置为\(z\)(加权图为\(1\)),如果图是无向图,那么\(dp_{xy}=dp_{yx}=z\)

然后我们进行状态转换。显然,如果我们想转移\(dp_{ij}\),我们需要找到一个点\(k\)来转移,那就是\ (DP _ {ij} \ getsmin (DP _ {ij},DP _ {ik} DP _ {kj}) \)

这里需要注意的是,我们的\(k\)层循环必须放在\(i\)和\(j\)层循环之外,因为如果放在\(i,j\)内,你会发现每两点的最短路径只会被计数一次,当你处于状态转换时,你只

Floyd算法的时间复杂度为\(o(n ^ 3)\),因为\(i,j,k\)必须枚举一层循环,比前三种算法快。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/100417.html

(0)

相关推荐

  • 抖音刷赞网址,免费抖音双击赞网站?

    技术抖音刷赞网址,免费抖音双击赞网站?抖音点赞、抖音粉丝、抖音评论、抖音播放是怎么刷合适?如今越来越多的人都会玩抖音,因为抖音里面有特别多有趣的内容,很多的用户会去把自己生活当中比较有趣的一些生活经验或者是生活经历发在抖

    测评 2021年11月10日
  • 消息队列架构设计思路(消息队列框架有哪些)

    技术消息队列Broker主从架构的设计方案是什么这篇文章将为大家详细讲解有关消息队列Broker主从架构的设计方案是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。今天

    2021年12月24日
  • 怎么将python项目打包成exe与安装包

    技术怎么将python项目打包成exe与安装包这篇文章主要介绍“怎么将python项目打包成exe与安装包”,在日常操作中,相信很多人在怎么将python项目打包成exe与安装包问题上存在疑惑,小编查阅了各式资料,整理出

    攻略 2021年11月16日
  • win10系统Docker怎么搭建设备共享平台stf

    技术win10系统Docker怎么搭建设备共享平台stf本篇内容介绍了“win10系统Docker怎么搭建设备共享平台stf”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如

    攻略 2021年12月13日
  • 文科二本大学,文科二本有哪些好的大学

    技术文科二本大学,文科二本有哪些好的大学二本大学多为省属大学或者是非211工程大学文科二本大学,不可否认的是一本大学和二本大学在师资和硬件方面还是有一定差距的的,这也就是为什么大家都喜欢考一本大学,不愿意考二本大学的原因

    生活 2021年10月24日
  • 怎么让APP永不崩溃

    技术怎么让APP永不崩溃本篇内容介绍了“怎么让APP永不崩溃”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!让我的APP永

    攻略 2021年10月21日