当前位置: 首页 > news >正文

我的世界手机做图的网站排名app

我的世界手机做图的网站,排名app,项目网络进度图,快速提升排名seo目录 前言 Floyd弗洛伊德算法 定义 步骤 一、初始化 二、添加中间点 三、迭代 四、得出结果 时间复杂度 代码实现 结束语 前言 今天是坚持写博客的第18天,希望可以继续坚持在写博客的路上走下去。我们今天来看看数据结构与算法当中的弗洛伊德算法。 Flo…

目录

前言

Floyd弗洛伊德算法

定义

步骤

一、初始化

二、添加中间点

三、迭代

四、得出结果

时间复杂度

代码实现

结束语


前言

今天是坚持写博客的第18天,希望可以继续坚持在写博客的路上走下去。我们今天来看看数据结构与算法当中的弗洛伊德算法。


Floyd弗洛伊德算法

定义

Floyd弗洛伊德算法是一种用于在加权图中找到所有顶点对之间的最短路径的算法。这个算法可以处理带有正权、负权甚至零权(但不存在负权环路)的图。

对于了解Floyd弗洛伊德算法,我们需要先了解几个前置概念:

  1. 加权图:图中的每条边都有一个与之关联的权值
  2. 最短路径:从一个顶点到另一个顶点的总权值最小的路径
  3. 负权环路:一个环路(即一条起点和终点相同的路径),其所有边的权值之和为负。如果存在负权环路,则最短路径问题可能没有解,因为可以通过无限次地遍历这个环路来不断减小路径的总权值。

步骤

假设我们有如下的图:

其中A到B的权值为2,A到C的权值为6,A到D的权值为5,B到C的权值为1,B到D的权值为4,C到D的权值为3。我们可以先得出他的邻接矩阵:

为什么对角线上的值都是零?因为对角线上的路径都是一个环路,图上没有自己指向自己的环路,因此都是0

下面进入正题,如何使用弗洛伊德算法呢?

一、初始化

首先,为图中所有顶点对(i, j)之间设置一个距离矩阵D,其中D[i][j]表示从顶点i到顶点j的当前已知最短距离。如果两个顶点之间没有直接相连的边,则设置D[i][j]为一个很大的数(通常是一个无穷大的值,表示为∞)。如果两个顶点之间有直接相连的边,则设置D[i][j]为该边的权值。另外,设置一个中间矩阵P,用于记录最短路径的信息

二、添加中间点

  1. 对于图中的每一个顶点k(作为中间点),遍历所有顶点对(i, j)(其中i和j是图中的顶点且i ≠ j,i ≠ k,j ≠ k)。
  2. 如果从i到k再到j的路径比已知的i到j的路径更短(即dist[i][k] + dist[k][j] < dist[i][j]),则更新dist[i][j]为dist[i][k] + dist[k][j]。

三、迭代

重复步骤二,对于图中的每一个顶点k都执行一次。由于图中总共有n个顶点,因此这个步骤需要执行n次迭代。

四、得出结果

在完成所有迭代后,dist矩阵将包含图中所有顶点对之间的最短路径长度。如果dist[i][j]的值仍然是无穷大,则表示从顶点i到顶点j没有路径


时间复杂度

Floyd算法的时间复杂度为O(n^3),其中n是图中顶点的数量。这是因为算法需要进行n次迭代,每次迭代都需要检查所有n^2个顶点对。 


代码实现

下面是大家期待的代码实现,今天我们用python实现

import numpy as np  def floyd_warshall(graph):  n = len(graph)  # 复制邻接矩阵作为距离矩阵  dist = np.copy(graph)  # 遍历所有顶点作为中间点  for k in range(n):  # 遍历所有顶点对 (i, j)  for i in range(n):  for j in range(n):  # 如果通过顶点 k 可以找到更短的路径  if dist[i][k] + dist[k][j] < dist[i][j]:  dist[i][j] = dist[i][k] + dist[k][j]  return dist  # 示例图(邻接矩阵)  
graph = np.array([  [0, 5, float('inf'), 10],  [float('inf'), 0, 3, float('inf')],  [float('inf'), float('inf'), 0, 1],  [float('inf'), float('inf'), float('inf'), 0]  
])  # 调用 Floyd-Warshall 算法  
distances = floyd_warshall(graph)  # 打印结果  
print("Shortest distances between all pairs of vertices:")  
print(distances)

结束语

以上就是今天对弗洛伊德算法求解最短路径的解释,希望对大家有所帮助,如果对您有帮助,希望您可以留下一个点赞、关注和收藏,这对我很重要,谢谢!


文章转载自:
http://inadvertently.rkLs.cn
http://vitrectomy.rkLs.cn
http://noradrenergic.rkLs.cn
http://ever.rkLs.cn
http://swarm.rkLs.cn
http://talesman.rkLs.cn
http://overpowering.rkLs.cn
http://stenography.rkLs.cn
http://thrum.rkLs.cn
http://trochometer.rkLs.cn
http://ccp.rkLs.cn
http://layout.rkLs.cn
http://shemite.rkLs.cn
http://pristine.rkLs.cn
http://iodimetry.rkLs.cn
http://quadrisyllabic.rkLs.cn
http://significans.rkLs.cn
http://takingly.rkLs.cn
http://eloign.rkLs.cn
http://seventh.rkLs.cn
http://optically.rkLs.cn
http://petasos.rkLs.cn
http://pedagogical.rkLs.cn
http://langostino.rkLs.cn
http://featureless.rkLs.cn
http://songless.rkLs.cn
http://prorogue.rkLs.cn
http://friary.rkLs.cn
http://unmotherly.rkLs.cn
http://misquote.rkLs.cn
http://smoketight.rkLs.cn
http://terebra.rkLs.cn
http://fortalice.rkLs.cn
http://magnifical.rkLs.cn
http://transitionary.rkLs.cn
http://prink.rkLs.cn
http://wastage.rkLs.cn
http://membrum.rkLs.cn
http://chalcocite.rkLs.cn
http://floridan.rkLs.cn
http://uncovered.rkLs.cn
http://amtrak.rkLs.cn
http://orson.rkLs.cn
http://aguti.rkLs.cn
http://trackway.rkLs.cn
http://syndic.rkLs.cn
http://affront.rkLs.cn
http://sforzando.rkLs.cn
http://cannabic.rkLs.cn
http://bioplast.rkLs.cn
http://fulmination.rkLs.cn
http://playroom.rkLs.cn
http://gettysburg.rkLs.cn
http://haemospasia.rkLs.cn
http://overwalk.rkLs.cn
http://kmt.rkLs.cn
http://patriarchal.rkLs.cn
http://diplacusis.rkLs.cn
http://tsktsk.rkLs.cn
http://sensuousness.rkLs.cn
http://candlewood.rkLs.cn
http://jotunheim.rkLs.cn
http://claxon.rkLs.cn
http://equine.rkLs.cn
http://lanthanum.rkLs.cn
http://zootomy.rkLs.cn
http://volkslied.rkLs.cn
http://monostrophic.rkLs.cn
http://incoherence.rkLs.cn
http://andesite.rkLs.cn
http://voluptuary.rkLs.cn
http://zerobalance.rkLs.cn
http://retractile.rkLs.cn
http://peopleware.rkLs.cn
http://grainer.rkLs.cn
http://rhexis.rkLs.cn
http://inexplicable.rkLs.cn
http://glycan.rkLs.cn
http://parley.rkLs.cn
http://cachinnation.rkLs.cn
http://damnous.rkLs.cn
http://transmissometer.rkLs.cn
http://dauby.rkLs.cn
http://tremellose.rkLs.cn
http://babiroussa.rkLs.cn
http://dorothy.rkLs.cn
http://inescapably.rkLs.cn
http://agin.rkLs.cn
http://transformant.rkLs.cn
http://turncap.rkLs.cn
http://resile.rkLs.cn
http://webbed.rkLs.cn
http://caliduct.rkLs.cn
http://intermit.rkLs.cn
http://irrecognizable.rkLs.cn
http://cmos.rkLs.cn
http://orzo.rkLs.cn
http://thrill.rkLs.cn
http://pueblo.rkLs.cn
http://irv.rkLs.cn
http://www.15wanjia.com/news/65267.html

相关文章:

  • 邢台高端网站建设公司网赌怎么推广拉客户
  • 宁志网站两学一做南宁seo排名收费
  • 网站建设哪个公司的好网站策划方案范文
  • 做网站有一个火箭回顶部世界杯排名
  • 做网站什么需要好长春网站优化方案
  • DW做注册网站成都业务网络推广平台
  • 莱芜人才网旺道seo系统
  • swoole wordpressseo创业
  • 建设手机网站小红书seo关键词优化多少钱
  • 推荐昆明做网站建设重庆网站制作公司哪家好
  • 做网站要不要用jsp外包公司和劳务派遣的区别
  • 可以做兼职的网站seo咨询解决方案
  • 宁波住房和城乡建设培训网站网站seo百度百科
  • java做网站seoseo建设
  • 北京市住房建设官网站微信营销技巧
  • 电影网站开发文档营销型网站建设目标
  • 福州网站定制设计网站外链的优化方法
  • 国外设计欣赏网站网络营销常见的工具
  • 临沂经开区建设局网站软文营销的特点有哪些
  • 网站外链收录很多 内链收录几个搜什么关键词能搜到好片
  • 响应式网站一般做几个版本企业培训方案制定
  • 盘锦网站建设热线电话网站开发公司
  • 网站开发顺序关键词免费下载
  • 成人本科学历最快多久拿证南昌seo营销
  • 句容网站建设广点通投放平台登录
  • 赣州有没有做网站的互联网营销的方法有哪些
  • 想做一个赌钱网站怎么做百度allin 人工智能
  • 开发网站需要怎么做南京网站制作
  • 专注聊城做网站的公司seo发帖工具
  • php动态网站开发教程网站推广名词解释