09.00_图论
图论
基础图论
基础图论包含了处理图的基本算法和遍历方式。
特点
- 时间复杂度:从
到
不等
- 空间复杂度:通常为
或
- 适用于网络、路径、连通性等问题
分类
DFS | 深度优先搜索 | |
BFS | 广度优先搜索 | |
拓扑排序 | 有向无环图排序 | |
强连通分量 | 有向图连通性 |
最短路径
最短路径算法用于求解图中两点间的最短距离。
特点
- 时间复杂度:从
到
不等
- 空间复杂度:通常为
或
- 适用于路径规划、网络流量等问题
分类
Dijkstra | 单源最短路 | 非负权值 |
Bellman-Ford | 单源最短路 | 可处理负权 |
Floyd | 多源最短路 | 动态规划 |
SPFA | 单源最短路 | 队列优化 |
生成树
生成树算法用于求解图的最小生成树。
特点
- 时间复杂度:通常为
- 空间复杂度:通常为
- 适用于网络设计、电路布线等问题
分类
Kruskal | 最小生成树 | 基于边排序 |
Prim | 最小生成树 | 基于点生长 |
Boruvka | 最小生成树 | 并行处理 |
次小生成树 | 次优解问题 | 替换边法 |
应用场景对比
基础图论适合:
- 图的遍历
- 连通性判断
- 环路检测
- 拓扑序列
最短路径适合:
- 导航系统
- 网络路由
- 社交网络
- 资源调度
生成树适合:
- 网络设计
- 电路布线
- 集群连接
- 成本优化
选择建议
- 遍历问题选择DFS/BFS
- 单点路径选择Dijkstra
- 全局路径选择Floyd
- 最小代价选择Kruskal/Prim
- 负权边选择Bellman-Ford
牛客代码笔记-牛栋 文章被收录于专栏
汗牛充栋,学海无涯。<br/> 内含算法知识点讲解,以及牛客题库精选例题。<br/> 学习算法,从牛栋开始。