004-迪杰斯特拉算法求解最短路径的一点思想
来源:互联网 发布:sd卡数据恢复安卓版 编辑:程序博客网 时间:2024/04/28 13:38
复习了迪杰斯特拉算法,在这里写一个小例子,供大家参考,例子主要是知道起点的情况下,求一个图中到各个点的最短路径。
这是一开始给的图,假设我们从A出发,寻找从A分别到B,C,D,E,F的最短路径,过程如下:
1,对于A,A->A=0,这就是最短路径;
2,对于A,我们继续向下索引,有A->B=6,A->C=3,A->other=∞,所以我们选择A->C作为第二个路径;
3,对于A->C,我们可以继续向下索引,这个时候会有A->C->B=5,A->C->D=6,A->C->E=7,A->C->F=∞,所以我们选择A->C->B=5作为第三个路径;
4,对于A->C->B,我们继续向下索引,可以得到A->C->B->D=11,A->C->B->F=∞,这个时候到了关键的地方,因为对于A->D,我们之前已经得到过从A走到D的路径相比于现在有更加优秀的A->C->D=6,所以舍弃这一步的A->C->B->D=11,而是选择A->C->D为第四个路径;
5,对于A->C->D,我们可以得到A->C->D->E=8,A->C->D->F=9,同上,这个时候我们有A->C->E=7,所以舍弃A->C->D->E=8,将A->C->E作为第五个路径;
6,对于A->C->E,我们可以求出A->C->E->F=12,这个时候又是同上,有A->C->D->F=9,所以舍弃这一步求出来的值,得到A->C->D->F=9,至此,求最短路径已经全部完毕。
7,结论是:
A->A = 0;
A->B = A->C->B = 5;
A->C = 3;
A->D = A->C->D=6;
A->E = A->C->E=7;
A->F = A->C->D->F=9.
- 004-迪杰斯特拉算法求解最短路径的一点思想
- 弗洛伊德(Floyd)算法求解图的最短路径
- Bellman-Ford算法—求解带负权边的最短路径
- Floyd算法求解所有顶点间的最短路径
- 初学A*算法求解静态地图的最短路径
- 基于Dijsktra算法的最短路径求解
- 迪杰斯特拉算法求解最短路径(三)---《动态规划》
- A* 算法求解最短路径
- A* 算法求解最短路径
- A*算法求解最短路径
- BFS 算法求解最短路径
- floyd算法求解最短路径
- Dijkstra算法求解最短路径
- 无向图的最短路径求解算法之——Dijkstra算法
- 无向图的最短路径求解算法之——Dijkstra算法【转】
- 无向图的最短路径求解算法之——Dijkstra算法
- 迪杰斯特拉算法--最短路径
- 迪杰斯特拉算法-最短路径
- css外联式和导入式的差别
- 杂文——s5pv210用户手册翻译
- Java集合类
- Exception in thread "main" java.lang.NoClassDefFoundError: entity/user (wrong name: entity/User)
- 多任务
- 004-迪杰斯特拉算法求解最短路径的一点思想
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十五)
- 3.21学习内容
- 解决springMVC中@response向前台传递参数变问号的问题
- C++中如何读取一个文件。
- java IO流(异常的打印信息)
- 运算符重载,友元函数,重载输入输出运算符,状态成员,rand(),类的自动转换
- 网络协议栈分析——从设备驱动到链路层
- HDU