acwing算法基础之搜索与图论--最短路问题

目录

  • [1 基础知识](#1 基础知识)
  • [2 模板](#2 模板)
  • [3 工程化](#3 工程化)

1 基础知识

假设有n个结点,m条边(边的长度或者权重不一致),最短路问题的分类及求解方法如下:

1 单源最短路问题 ,例如求结点1到结点n的最短距离。

1.1 所有边的权重都是正的。

  • 朴素版dijkstra算法,时间复杂度为O(n^2)。时间复杂度与边数无关,适合于稠密图。它是基于贪心实现的。
  • 堆优化版dijkstra算法,时间复杂度为O(mlogn)。适合于稀疏图。它是基于贪心实现的。

1.2 存在负权边。

  • bellman-ford算法,时间复杂度为O(nm)。它是基于离散数学中的一些知识实现的。
  • spfa算法,一般情况下,时间复杂度为O(m);最坏情况下,时间复杂度为O(nm)。

2 多源最短路问题,例如求n个结点中两两结点的最短距离。

  • floyd算法,时间复杂度为O(n^3)。它是基于动态规划实现的。

2 模板

待补充。。。

3 工程化

待补充。。。

相关推荐
Tiandaren3 小时前
Selenium 4 教程:自动化 WebDriver 管理与 Cookie 提取 || 用于解决chromedriver版本不匹配问题
selenium·测试工具·算法·自动化
岁忧4 小时前
(LeetCode 面试经典 150 题 ) 11. 盛最多水的容器 (贪心+双指针)
java·c++·算法·leetcode·面试·go
chao_7894 小时前
二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
开发语言·数据结构·python·算法·leetcode
秋说6 小时前
【PTA数据结构 | C语言版】一元多项式求导
c语言·数据结构·算法
Maybyy6 小时前
力扣61.旋转链表
算法·leetcode·链表
卡卡卡卡罗特8 小时前
每日mysql
数据结构·算法
chao_7899 小时前
二分查找篇——搜索旋转排序数组【LeetCode】一次二分查找
数据结构·python·算法·leetcode·二分查找
lifallen9 小时前
Paimon 原子提交实现
java·大数据·数据结构·数据库·后端·算法
lixzest9 小时前
C++ Lambda 表达式详解
服务器·开发语言·c++·算法
EndingCoder10 小时前
搜索算法在前端的实践
前端·算法·性能优化·状态模式·搜索算法