Dijkstra算法的正确性证明
为什么dijkstra算法是正确的?因为在S中的都是已经确定了最短距离的点,在V-S中找到的最短距离的点t,这个最短距离要么直接就是起点到这个点的弧的长度,要么是利用S中的已经确定了最短距离的点更新得到的,这个点t当前的距离一定是已经确定了,不会再变了,因为此算法是按照最短距离递增的方式求得的,其他属于V-S的顶点不可能在返回来更新t了,t到起点的距离比他们距离起点的距离都小。t要么本来就是直接与起点相连,并且最小,要么就是利用S中的已经确定了最短距离的点更新得到的,所以这个t点的最短距离一定已经求得了。
其中S是已经确定了最短距离的点的集合,V是总的顶点集合