Alex_McAvoy

想要成为渔夫的猎手

最短路问题

最短路是图论中十分常见的一个问题,对于图 $G(V,E)$,从顶点 $u$ 到顶点 $v$ 的最短路径 $d(u,v)$ 为从 $u$ 到 $v$ 的任何路径中最小的边权和

最短路可分为以下两种:

  • 单源最短路:图中某一顶点到其他各顶点的最短路
  • 全源最短路:图中每个顶点间的最短路径

求解最短路径的算法都依赖于一条性质:两点间的最短路包含了路径上其他顶点间的最短路

对于单源最短路和全源最短路,其基本求解算法如下:

  • Dijkstra 算法:求解单源最短路,$O(|E|+|V|log|V|)$
  • Bellman-Ford 算法:求解单源最短路,适用于带负权值的图,$O(|V||E|)$
  • SPFA 算法:求解单源最短路,Bellman-Ford 的优化算法
  • Floyd 算法:求解全源最短路,利用动态规划思想,$O(|V|^3)$
  • Johnson 算法:求解全源最短路,基于 Dijkstra 算法,$O(|V||E|+|V|^2log|V|)$
感谢您对我的支持,让我继续努力分享有用的技术与知识点!