Dijkstra算法是求单源最短路径的一个算法,即可以求某个节点到其他所有节点的最短路径,注意图里不能含有负权图。
1.假定为求节点A到其他节点的最短路径,设一个数组D[N]为节点A到其他节点路径的最小值。
2.初始化D[N],把A到A的距离设为0,A到其他顶点的距离设为无穷大。标记A为已访问
3.遍历A能直接连到的节点,把权重设为为D[N]的数值,没能直接连到的节点还是无穷大。
4.找到一个D[N]的最小值,即是距离A最近的节点,并返回当前节点,标记已访问。
5.把4找到的节点当成新的A,重复3~4。
如此结束,D[N]就能表示A到所有节点的最短路径分别是多少了,视频讲解:
https://www.xuetangx.com/courses/course-v1:SCUT+145055+sp/courseware/c692c9c557f541f390bd9c6a25099736/ab1ffd086c3048e0b11f73198bdad60b/
这个作为练习:
答案是C