图的应用
一:最小生成(代价)树
- 概念:
- 应用:
- 使用的算法:
- Prim算法(普里姆):从某一个顶点开始构建生成树;每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止
- Kruskal算法(克鲁斯卡尔):每次选择一条权值最小的边,使这条边的两头连通(原本已经连通的就不选);直到所有结点都连通
- 时间复杂度:
- 算法实现思想:
二:最短路径问题
- 概念:
- (1)BFS求无权图的单源最短路径:
- 只适用于无权图,或者所有边的权值都相同的图
- 代码实现:
- 就是对BFS的小修改,在visit一个顶点时,修改其最短长度d[]并在path[]记录前驱结点
- 总结1:
- (2)Dijkstra最短路径算法:
- 概念:
- (3)Floyd最短路径算法:
- 概念:
- 代码实现:
- (4)对比总结: