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

最短路径介绍

最短路径是图论中的算法,下面将列举几个常见的算法:

🚗 一、单源最短路径(一个起点到所有点)

1. Dijkstra 算法

  • 适用图:非负权图(不能有负权边)

  • 思路:贪心 + 最小堆(优先队列)

  • 时间复杂度

    • 使用堆:O(E log V)

    • 不使用堆:O(V²)

📌 示例应用:地图导航、网络最短延迟


2. Bellman-Ford 算法

  • 适用图:有负权边(可以有负数,但不能有负环)

  • 思路:动态规划,最多进行 V-1 次松弛

  • 时间复杂度:O(VE)

📌 示例应用:货币汇率套利检测、网络传输带延迟和奖励


3. SPFA(队列优化的 Bellman-Ford)

  • 适用图:有负权边,无负环

  • 特点:在稀疏图上比 Bellman-Ford 更快

  • 复杂度:理论上最坏 O(VE),平均很快


🌐 二、多源最短路径(任意两点之间)

1. Floyd-Warshall 算法

  • 适用图:稠密图、小规模图(V 不太大)

  • 思路:动态规划

  • 时间复杂度:O(V³)

📌 示例应用:城市之间最短路线查询


🧭 三、特殊图的最短路径

1. BFS(广度优先搜索)

  • 适用图:无权图(或所有边权为 1)

  • 特点:可以用来找图中最短步数(如迷宫最短路)

  • 复杂度:O(V + E)


2. A*(A Star)算法

  • 适用图:路径规划,有启发式信息(如地图中到目标的直线距离)

  • 特点:速度快,常用于游戏和 AI 导航


3. 0-1 BFS

  • 适用图:边权只有 0 或 1

  • 思路:用双端队列 deque 实现


🎯 总结对比表:

方法负边负环适用图类型时间复杂度
Dijkstra非负权图O(E log V)
Bellman-Ford有负边图O(VE)
SPFA有负边图平均 O(V+E)
Floyd-Warshall多源稠密图O(V³)
BFS✔️(无权)-所有边权为1O(V + E)
0-1 BFS✅(0/1)0/1 权图O(V + E)
A*有启发函数看启发函数

相关文章:

  • 【论文解读】MSVM-UNet: Multi-Scale Vision Mamba UNet for Medical Image Segmentation
  • 机器学习项目二:帕金森病检测
  • 【C++教程】使用printf语句实现进制转换
  • 前端面试题(八):简述Vue2的响应式原理
  • mysql自动赋值
  • C语言题目自增在前与在后
  • CentOS服务器能ping通却无法yum install:指定镜像源解决
  • 在思科模拟器show IP route 发现Gateway of last resort is not set没有设置最后的通道
  • One-Hot标签编码方法详解
  • 机器学习概述自用笔记(李宏毅)
  • mysql DQL
  • 「小推桌面官方下载」小推桌面TV版-安卓电视版官方免费下载新版
  • 【KWDB创作者计划】_KWDB部署与使用详细版本
  • 批量将多个文件夹转成压缩包,支持设置压缩密码
  • 【数据库系统概论】第3章 SQL(四)视图(超详细)
  • 5 C 程序全流程解析:编写、预处理、编译、汇编、链接、运行与 GCC 指令详解
  • 【C++ Qt】认识Qt、Qt 项目搭建流程(图文并茂、通俗易懂)
  • 【Spring】IoC详解:方法Bean的存储、Bean重命名、扫描路径@Component(下)
  • 计算机操作系统——存储器管理
  • Android 日志输出模块
  • ​关键词看中国经济“一季报”:韧,长期向好看底气
  • 俄乌战火不熄,特朗普在梵蒂冈与泽连斯基会晤后口风突变
  • 在差异中建共鸣,《20世纪美国文学思想研究》丛书出版
  • 对外投资增长、消费市场持续升温,中国经济砥砺前行
  • 剪纸纹样“流动”在水乡,谁不忆江南
  • 美联储官员:货币政策不会立即改变,金融市场波动或致美国经济增长承压