mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
400 字
1 分钟
最短路径
2026-04-07

最短路径#

最短路径#

定义:从一个顶点 v0 到图中任意一个顶点 v1 的路径长度最小的路径。

BFS算法#

同树,森林的BFS算法

因为BFS总是按照距离由近到远的顺序遍历图中的顶点,从而保证每个顶点首次被访问时,所经过的路径最短路径

Eg:适合无权图

Dijkstra算法#

算法原理:

Dijkstra算法使用一个集合S记录已经确定最短路径的顶点。

tep1:将源点 a 放入S,并存储最短路径 {a,b} 。

tep2:将新顶点 b 加入 S 后,并存储最短路径 {a,b,c} 。

tep3:直到所有顶点都加入 S 中 。

image-20260407151643296

Eg:求单源最短路径

Dijkstra动画演示#

Floyd算法#

Floyd算法使用邻接矩阵存储图

image-20260407152722364

算法原理简单来说:

依次将每个点做为 “中间点” 去更新。

Path 存储的是终点的前一个结点,便于查找路径。

图示 分别是 初始 D1D^{-1} 和 以 0 作为中间点 D0D^0 更新 。

直到更新到最后一个顶点。

image-20260407153519238

Eg:求各顶点之间的最短路径

Floyd动画演示#

BFS,Dijkstra,Floyd总结#

BFSDijkstraFloyd
用途求单源最短路径求单源最短路径求各顶点直接最短路径
无权图
带权图
带负权值的图
带负权回路的图
时间复杂度$O(V^2)O(
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

最短路径
https://yubendan.com/posts/ds/最短路径/
作者
Yubendan
发布于
2026-04-07
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00