算法随笔:各种经典最短路算法的简要比较总结
有多种最短路径的应用场景,它们需要用到不同的算法来解决。除了贪心最优搜索之外,其他都是最优性算法,即得到的解都是最短路径。其中m是边的数量,n是点的数量。
问题 | 边权 | 算法 | 时间复杂度 |
---|---|---|---|
一个起点,一个终点 | 非负数;无边权(或边权为1) | A*算法 | <O((m+n)logn) |
双向搜索 | <O((m+n)logn) | ||
贪心最优搜索 | <O(m+n) | ||
一个起点到其他所有点 | 无边权(或边权为1) | BFS | O(m+n) |
非负数 | Dijkstra(堆优化) | O((m+n)logn) | |
允许有负数 | SPFA | <O(mn) | |
所有点对之间 | 允许有负数 | Floyd | O(n^3) |
应该在不同的场景下有选择地使用。
(1)图的规模小,并且要求多源最短路,那么使用Floyd,如果边权有负数,则需要判断负环。
(2)图的规模大,且边的权值非负,用Dijkstra,SPFA虽然在Bellman-Ford算法上进行了很大的优化,但是最坏情况下依然是O(mn),不稳定(比赛时,有的题目可能故意利用SPFA的不稳定性,如果一道题目的图规模很大,并且边的权值为非负数,它可能会故意设置不利于SPFA的测试数据,此时使用SPFA将会超时,要使用更稳定的Dijkstra)。
(3)图的规模很大,且边的权值有负数,用SPFA,并且需要判断负环。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
算法随笔:各种经典最短路算法的简要比较总结
有多种最短路径的应用场景,它们需要用到不同的算法来解决。除了贪心最优搜索之外,其他都是最优性算法,即得到的解都是最短路径。其中m是边的数量,n是点的数量。 问题边权算法时间复杂度一个起点,一个终点非负数&#…...
![](https://img-blog.csdnimg.cn/0ca74dc4871b47e9873a96909656ce4b.png)
concrt140.dll怎么下载,concrt140.dll修复工具(修复精灵下载)一键修复问题
今天,我将为大家介绍一个非常常见的问题:由于找不到concrt140.dll,无法继续执行代码怎么办。这个问题可能会让很多网友感到头疼,但是别担心,我会为大家提供5种最全详细的恢复方法。在接下来我将详细介绍这些问题及其解决方法。希望…...
![](https://img-blog.csdnimg.cn/253e6ee8ec3d4b00bb8fcdd6d7151626.png)
自行实现字符串转浮点数函数atof()
【重复造轮子的原因】 尽管atof是标准C中自带的函数,用于将字符串转为浮点数,但是在某些环境下有可能没法使用的(例如CUDA环境中,没有atof函数,但是math.h可以使用),因此自行实现。 【通过的测试用例】 【实现的代码】 #include <stdio.h> #include <math.h…...
![](https://img-blog.csdnimg.cn/540fd0ca63844d6080781482db236c19.png)
Windows平台Fortran编程入门
Fortran,原意为 Formula Translation(公式翻译器);一门出现很早的面向科学计算的高级语言,在数值计算领域仍然使用; 免费 Fortran 的编译器包括 GCC 的 GFortran,Intel 的 Intel Fortran Compi…...
![](https://www.ngui.cc/images/no-images.jpg)
05-Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表?【Java面试总结】
Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表? 索引下推是mysql5.6 提出的一个查询优化方案,主要的目的是减少数据或查询中不必要的读取和计算,它的原理是将查询条件尽可能的推送到索引层面…...
![](https://img-blog.csdnimg.cn/36b092110c4b45ba8bce718e45941878.png)
晨启,MSP430开发板,51开发板,原理图,PCB图
下载:https://github.com/xddun/blog_code_search...
![](https://img-blog.csdnimg.cn/1de8613e51b7403498fca3c513e1f582.png)
Notepad++ 的安装及配置
由于电脑重装了Win11系统,干脆重头开始,重新安装每一个软件~~~ 很多博客或者博主都会推荐notepad的官网:https://notepad-plus-plus.org/ 但大家亲自点开就会发现是无响应,如下图 同时,也会有很多博主直接给网盘地址…...
![](https://img-blog.csdnimg.cn/0309ca6549b842e18f5d7e48be0d9313.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-l6KGM5ZCI5LiA77yM5rWp,size_20,color_FFFFFF,t_70,g_se,x_16)
✔ ★算法基础笔记(Acwing)(一)—— 基础算法(20道题)【java版本】
基础算法 一、快速排序1. 快速排序例题2. 第k个数( 快速选择 ) ✔ ✔1.31★快排二刷总结( 4点 ) 二、归并排序1. 归并排序模板题 ✔ ✔1.31★二刷总结 ★2. 逆序对的数量 ✔ ✔1.31★二刷总结 三、二分1. 数的范围 ✔1.31★二刷总结(mid > x 则是 输出最左边一个)第一个大于…...
![](https://www.ngui.cc/images/no-images.jpg)
简单记录下gin中使用中间件记录操作日志
1、直接定义中间件package middlewareimport ("bytes""encoding/json""fmt""github.com/gin-gonic/gin""go.uber.org/zap""io""strconv""strings" )func LoggerMiddleWare() gin.HandlerFunc…...
![](https://img-blog.csdnimg.cn/001c5594f8174d2ab1f7067dc9258d52.png)
基于Matlab利用IRM和RRTstar实现无人机路径规划(附上源码+数据+说明+报告+PPT)
无人机路径规划是无人机应用领域中的关键问题之一。本文提出了一种基于IRM(Informed RRTstar Method)和RRTstar(Rapidly-exploring Random Tree star)算法的无人机路径规划方法,并使用Matlab进行实现。该方法通过结合I…...
![](https://img-blog.csdnimg.cn/e74366d12a794d558b6ab22b06a77990.png)
uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)
后台老哥要用微软的signalr,总结了一些经验和问题 引入方法 1、npm npm i microsoft/signalr 2、下载他的js或者cdn <script src"https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/6.0.1/signalr.js"></script>在uniapp中&…...
![](https://img-blog.csdnimg.cn/c795fb9ba8864c4ead354b378e38dfa5.png#pic_center)
CloudCompare 二次开发(9)——半径滤波
目录 一、概述二、代码集成三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 使用CloudCompare与PCL的混合编程实现点云半径滤波。半径滤波的算法原理见:PCL 半径滤波器。基于PCL将半径滤波集成到Cl…...
![](https://www.ngui.cc/images/no-images.jpg)
ElementUI浅尝辄止29:Breadcrumb 面包屑
显示当前页面的路径,快速返回之前的任意页面。 1.如何使用? 在el-breadcrumb中使用el-breadcrumb-item标签表示从首页开始的每一级。Element 提供了一个separator属性,在el-breadcrumb标签中设置它来决定分隔符,它只能是字符串&am…...
![](https://img-blog.csdnimg.cn/2799ee023f5242b38bc336ef09417491.jpeg)
ABB MPRC086444-005数字输入模块
ABB MPRC086444-005 是一款数字输入模块,通常用于工业自动化和控制系统中,用于接收和处理数字信号。以下是这种类型的数字输入模块通常可能具备的一般功能和特点: 数字输入接口:MPRC086444-005 模块通常配备多个数字输入通道&…...
![](https://img-blog.csdnimg.cn/8d4e8c159ea54a3199ced1aaec9fd5d8.png)
stable diffusion实践操作-常见lora模型介绍
系列文章目录 本文专门开一节写Lora相关的内容,在看之前,可以同步关注: stable diffusion实践操作 文章目录 系列文章目录前言一、什么是lora?1.1 lora 定义1.2 lora的基本原理1.2 通过分层控制lora 二、作用:2.1 复刻人物特征2…...
![](https://img-blog.csdnimg.cn/2997448d788e48348aa516c759ceb408.png)
kubeadm 安装k8s
目录 安装k8s 环境准备 所有节点,关闭防火墙规则,关闭selinux,关闭swap交换(必须关闭swap分区) //修改主机名 //所有节点修改hosts文件 //调整内核参数 所有节点安装docker 所有节点安装kubeadm,kube…...
![](https://img-blog.csdnimg.cn/4a76c1c1eaa94dc7920895cdd0852344.jpeg)
选择最适合您的Bug管理软件:市场比较与推荐
“Bug管理软件哪家好?市场上有许多优秀的Bug管理系统品牌如:Zoho Projects、JIRA、Redmine、Bugzilla、MantisBT。” 一款高效的Bug管理系统可以帮助团队更有效地发现、记录和解决软件中的问题,从而提高产品质量和用户满意度。本文将为您介绍…...
![](https://img-blog.csdnimg.cn/250c09c7f0b343e98c93796fb58bcf3e.png)
Spring MVC的常用注解及用法
Spring MVC的执行流程: 1.用户的请求首先到Controller 2.Controller将请求转发给Model 3.Model处理业务并将数据结果给Controller 4.Controller会将数据给View引擎 5.View转换数据生成最终的页面给用户。 常用注解: 1.requestMapping:…...
![](https://www.ngui.cc/images/no-images.jpg)
HTTP和HTTPS的区别、 HTTPS运行原理
HTTP 一种用于web浏览器和web服务器基于数据传递的协议基于TCP/IP协议的应用层传送,用于客户端和服务器之间的数据交互 HTTPS 是HTTP的安全版,基于SSL或TLS协议,对客户端和服务器之间加密和身份验证,使得数据之间传递具有了安全…...
![](https://www.ngui.cc/images/no-images.jpg)
统计封闭岛屿的数目
1254. 统计封闭岛屿的数目 关于岛屿的相似题目: 岛屿数量 – 二维矩阵的dfs算法封闭岛屿数量 – 二维矩阵的dfs算法统计封闭岛屿的数目统计子岛屿不同岛屿的数量 class MaxAreaOfIsland:"""floodFill 算法1254. 统计封闭岛屿的数目https://leetcod…...
![](https://img-blog.csdnimg.cn/568a8b23cb6d4194b0ada1a66bb619cc.png)
【数据结构与算法系列4】长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回 0 。 示例 1: 输入&…...
![](https://img-blog.csdnimg.cn/e8e0e2e87dfc42849d764091d9715972.png)
问道管理:底部渐渐抬高 今年反弹时刻或已来临
快速探底后,两市呈现分解走势。 沪指周三低开震动,指数在20日均线取得支撑后小幅上升,最终以红盘报收。深成指走势弱于沪指,尽管午后指数有所上升,但最终未能翻红。到收盘,沪指报收3158.08点,上…...
![](https://img-blog.csdnimg.cn/38c8aa73a3f74b98861f6c437018bdad.jpeg)
正规黄金代理的三大要素
对于现货黄金投资来说,寻找一个正规的黄金代理是十分重要的问题。在目前的现货黄金投资市场中,现货黄金代理的数量很多,他们都致力于耕耘现货黄金投资市场。当越来越多的专业人士加入到现货黄金投资的市场中当中时,这个市场将会越…...
![](https://img-blog.csdnimg.cn/183e7106a6af422fb2104492fdf66ea9.png)
Spine2D骨骼动画播放器 - 微信小程序版
Spine2D骨骼动画播放器 - 微信小程序版 简介平台支持 界面预览使用说明演示视频 版本笨笨的小目标(废话)参考资料测试文件百度盘分享 相关文档 简介 本播放器是SpinePlayer的微信小程序版。由于官方并没有提供现成的运行库,只能自己改造。 设…...
![](https://img-blog.csdnimg.cn/img_convert/c2758334fd01b4b51f7281c8b5de64fe.gif)
蓝天转债,双良转债上市价格预测
蓝天转债111017 基本信息 转债名称:蓝天转债,评级:AA,发行规模:8.7亿元。 正股名称:蓝天燃气,今日收盘价:9.74元,转股价格:10.13元。 当前转股价值 转债面值…...
![](https://img-blog.csdnimg.cn/5d20f3da5e34430c9e7ebf0c6551296e.png)
python-爬虫-xpath方法-批量爬取王者皮肤图片
import requests from lxml import etree获取NBA成员信息 # 发送的地址 url https://nba.hupu.com/stats/players # UA 伪装 google header {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.3…...
![](https://img-blog.csdnimg.cn/2bbe0deb3c8b4f9d9a767d4c978ff9e9.png)
go锁--读写锁
每个锁分为读锁和写锁,写锁互斥 没有加写锁时,多个协程都可以加读锁 加了写锁时,无法加读锁,读协程排队等待 加了读锁,写锁排队等待 Mutex用来写协程之间互斥等待 读协程使用readerSem等待写锁的释放 写协程使用writer…...
![](https://img-blog.csdnimg.cn/73f37b9362e24598ab0c0e5ee38df702.png)
Unity中Shader的屏幕坐标
文章目录 前言一、屏幕坐标1、屏幕像素的坐标2、屏幕坐标归一化 二、在Unity中获取 当前屏幕像素 和 总像素1、获取屏幕总像素,使用_ScreenParams参数2、获取当前片段上的像素怎么使用:在片元着色器传入参数时使用 前言 Unity中Shader的屏幕坐标 一、屏幕坐标 1、屏幕像素的坐…...
![](https://img-blog.csdnimg.cn/88ca35636ac34fb0bb9fd19d03ec0942.png)
springboot MongoDB 主从 多数据源
上一篇,我写了关于用一个map管理mongodb多个数据源(每个数据源,只有单例)的内容。 springboot mongodb 配置多数据源 临到部署到阿里云的测试环境,发现还需要考虑一下主从的问题,阿里云买的数据库&#x…...
![](https://img-blog.csdnimg.cn/bb6cbc39205a48d7892dbce475fecb10.png)
【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析
目录 1 描述性统计(Descriptive Statistics) 2 数据分组和聚合 3 数据透视表 4 相关性分析 1 描述性统计(Descriptive Statistics) 描述性统计是一种用于汇总和理解数据集的方法,它提供了关于数据分布、集中趋势和…...
![](/images/no-images.jpg)
高校信息公开网站建设/东莞搜索优化
Java冠军Sebastian Daschner发表了一篇博客文章,提议明确阐明Jakarta EE和Eclipse MicroProfile之间的关系。 之前,他曾建议Eclipse MicroProfile成为Jakarta EE的孵化器 ,但在这项新提议中,他接受了Eclipse MicroProfile如今比以…...
![](https://images2015.cnblogs.com/blog/859549/201704/859549-20170418221518118-37917214.png)
公司网站制作效果怎么样/百度allin 人工智能
本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控。 我的github地址点这里 …...
![](/images/no-images.jpg)
java web网站开发教程/免费自助建站模板
19 高级特征 我们将在这一章学习更多高级功能 19.4 高级函数和闭包 让我们来探索有关于函数和闭包的高级功能:函数指针以及返回值闭包 函数指针 除了向函数传递闭包之外,还可以传递函数,使用的是函数指针fn,函数的类型是fn&a…...
![](/images/no-images.jpg)
创建目录 wordpress/公司网页制作流程
作者【黄小斜】文章来源【程序员江湖】黄小斜,斜杠青年,某985硕士,阿里研发工程师,于2018 年秋招拿到 BAT 头条、网易、滴滴等 8 个大厂 offer个人擅长领域 :自学编程、技术校园招聘、软件工程考研Java并发编程一直是J…...
![](/images/no-images.jpg)
山东专业的制作网站/在哪里找软件开发公司
这篇文章主要介绍了PHP读取XML格式文件的方法,结合实例形式总结分析了php针对xml格式文件的读取、解析、加载、遍历等操作技巧,需要的朋友可以参考下具体如下:books.xml文件:Jack HerringtonPHP HacksOReillyJack HerringtonPodcasting HacksOReilly1.DO…...
![](https://pic002.cnblogs.com/images/2011/30432/2011062716085384.jpg)
玩客云 做网站服务器/免费的推广软件下载
标题有点太长了,直奔主题! 生产服务器环境: 系统:windows server 2008 R2(x64) web服务器:IIS7 应用程序:asp.net4.0、mvc2 开发服务器环境: 系统:windows7、…...