外观
一句话答案
图核心算法:BFS/DFS 遍历 O(V+E)、Dijkstra 单源最短路 O(ElogV)、拓扑排序(DAG)、Kruskal 最小生成树。
核心要点
| 算法 | 用途 | 时间 |
|---|---|---|
| BFS | 最短路(无权) | O(V+E) |
| DFS | 连通性/环检测 | O(V+E) |
| Dijkstra | 单源最短路(正权) | O(ElogV) |
| 拓扑排序 | DAG排序 | O(V+E) |
存储: 邻接表(稀疏图) / 邻接矩阵(稠密图)
追问与易错
追问方向:
- BFS 和 DFS 什么场景用哪个?
- Dijkstra 能处理负权边吗?
- 怎么检测图中的环?
易错点:
- ❌ DFS 能找最短路——无权图用 BFS 找最短路
- ❌ Dijkstra 是万能最短路——不能处理负权
💡 记忆锚点
图的四大金刚:BFS像水波扩散(一层层往外,天然找无权最短路),DFS像钻迷宫(一条路走到底再回头,查连通性和环)。Dijkstra像贪心导航(每次确定最近的点,用堆优化O(ElogV),但不能走负权路),拓扑排序像排课程表(先修课必须排前面,只能用在DAG无环图)。