dijkstra算法的步骤是这样的:
1.初始化:

2.接下来的步骤:

并重复:

-
如何确定下一步要将哪一个final置位true?
选择其对应dist值最小的,将final置位true;
-
如何更新将要将要确定的点的dist值?
由上一个确定了final的点,从这个点上走过来,看看路径长度,更小则将其更新。
简单来说就是这样:

代码实现:

dijkstra算法,有朴素版和堆优化两个版本。如何选择?
当点数不多的时候,我们使用朴素版的djstra。
当点数非常多的时候,
比如大于10000,大于10,0000的时候,我们使用堆优化的版本。