每次循环都会将一个点加入集合s中,表示当前点的最短距离已经确定,并用当前点更新其他不在集合s中的点的距离。 循环n-1次后,有n-1个点被加入集合s中,所以第n次循环只有一个点即第n个点不在集合s中,由于其他n-1个点都已经在集合s中,所以这最后一次循环不会更新任何一个点的距离,只会将第n个点加入集合s中而已,所以其实最后一次循环可有可无,也就是当n-1次循环结束后,所有点的最短距离其实就已经确定了。
第1次循环开始前起始点就已经被加进集合中了啊, 第n-1次循环全部点都进集合了吧
如果第一次循环开始前将起点加入集合s中,在进入循环之前就需要先用起点更新下其临点,否则就不对了,但是这样代码就会冗余。
第1次循环开始前起始点就已经被加进集合中了啊, 第n-1次循环全部点都进集合了吧
如果第一次循环开始前将起点加入集合s中,在进入循环之前就需要先用起点更新下其临点,否则就不对了,但是这样代码就会冗余。