图的应用--最短路
图的应用--最短路
最短路径问题
最短路径与最小生成树不同,路径上不一定包含n个顶点,也不一定包含n-1条边.
第一类问题:两点间最短路径
第二类问题:某源点到其他各点最短路径
两类常见最短路径问题
- 单源最短路径--用Dijkstra算法
- 所有顶点的最短路径--用floyd算法
Dijkstra:
Dijkstra算法
-
初始化
-
选择
-
更新
Dijkstra算法:按路径长度递增次序产生最短路径
Dijkstra算法步骤
所有顶点的最短路径
- 每次以一个顶点为源点,重复执行Dijkstra算法n次
- 弗洛伊德(Floyd)算法