Dijkstra求最短路详解(朴素版+堆优化版 带模板)
dijkstra的步骤,一共四步:
设起点距离为0
循环n次
每次找出集合外距离最短的点,将其放入集合中
利用刚才放入的点更新与之相连的所有点的距离
其思想是依据贪心,每次利用集合外距离最短的点更新其他点的最小值,一共n个点所以一共循环n次(事实上循环n-1次就行了,因为最后一次的最后一个点一定已经被剩余所有点更好了),这样更新结束后终点的距离一定是最短距离
举个例子:
对于下图
最开始设dist[1]=0,用v1更新与之相连的点的距离,注:v5、v6等还未标记距离的点距离应被初始化为0x
原创
2021-12-09 08:17:09 ·
869 阅读 ·
4 评论