Dijkstra的一些理解

Dijkstra算法的本质是,最短路径上每一段都是最短的,从点0到点N,必然经过与N相邻的点。
相当于遍历出一些点的最短路径,而目标点的最短路径必然是经过这些点中的部分点,贪心地求出大部分用不着的点的最短路径,最终组合出最终的最短路径。

反方向
我从点0出发,要去点N。一开始我并不知道最短路径D_min,首先要做的便是求出与点N相邻的所有点的最短路径,才能再依据点N与相邻点的距离信息得出哪个点是D_min上倒数第2点。倒数第2点确认了,方可确认倒数第3点,…,最后我们知道了最短路径D_min。
正方向
事实上我们一开始并不知道倒数第2点,也就无从得出D_min。但是,我们可以贪心地求出尽可能多的点的最短路径,从起点开始求,把最短路径小的先求完,直到求到了与点N相邻点的最短路径。

时间久了记不住,翻翻想法与看法。

你可能感兴趣的:(算法)