最短路径(迪杰斯特拉算法)
让编程改变世界
Change the world by program
最短路径(迪杰斯特拉算法)
我们时常会面临着对路径选择的决策问题,例如在中国的一些一线城市如北京、上海、广州、深圳等,一般从A点到到达B点都要通过几次地铁、公交的换乘才可以到达。 有些朋友想用最短对的时间,有些朋友想花最少的金钱,这就涉及到不同的方案,那么如何才能最快的计算出最佳的方案呢? [caption id="attachment_2631" align="alignnone" width="597"]![最短路径求法](http://blog.fishc.com/wp-content/uploads/2013/06/%E5%9B%BE%E7%89%871.jpg)
在网图和非网图中,最短路径的含义是不同的。
- 网图是两顶点经过的边上权值之和最少的路径。
- 非网图是两顶点之间经过的边数最少的路径。
关于最短路径的算法,我们会介绍两种:
- 迪杰斯特拉算法(Dijkstra)
- 弗洛伊德算法(Floyd)
求V0到V8的最短路径
[caption id="attachment_2632" align="alignnone" width="500"]![迪杰斯特拉算法](https://i-blog.csdnimg.cn/blog_migrate/0e0f49da2bf8b505abc107b46b738c32.png)
你找到了吗
[caption id="attachment_2633" align="alignnone" width="500"]![迪杰斯特拉算法](https://i-blog.csdnimg.cn/blog_migrate/07f05c9544144e896f7f838f4fd979d7.png)