Dijkstra算法算是贪心思想实现的,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的,所谓的松弛操作就是,遍历一遍看通过刚刚找到的距离最短的点作为中转站会不会更近,如果更近了就更新距离,这样把所有的点找遍之后就存下了起点到其他所有点的最短距离。
问题引入:
指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。
![2f65267a95a5f6e3e042686374d1a8d7.png](https://img-blog.csdnimg.cn/img_convert/2f65267a95a5f6e3e042686374d1a8d7.png)
![1d86b869f50d011d54fe44292ba0f1e8.png](https://img-blog.csdnimg.cn/img_convert/1d86b869f50d011d54fe44292ba0f1e8.png)
![acaf6f80be0889137b8fe1563df13798.png](https://img-blog.csdnimg.cn/img_convert/acaf6f80be0889137b8fe1563df13798.png)
Dijkstra算法算是贪心思想实现的,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的,所谓的松弛操作就是,遍历一遍看通过刚刚找到的距离最短的点作为中转站会不会更近,如果更近了就更新距离,这样把所有的点找遍之后就存下了起点到其他所有点的最短距离。
指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。