主要解决的问题是:
求解单元点的最短路径问题。(带不带方向不重要)
使用下图m为例子:
求从G带点出发 到各个点位的最短路径。
迪杰斯塔拉算法的核心是:每次找到一条最短的从G点出发,能够达到的点。作为最短。然后依次选择。(为什么样子就可以选择出最短路径???)
重点1,找第一条路径时候,找到的最短的那个点,一定是与G(G除外)直接相连的一点个点。我图中最近的点是A点!!!!!!
重点2,那么下一点该如何寻找?? 寻找从G点和A点出发能够到直接达到的最近的点(G,A除外)。注意:如果是从A点出发 能够直接达到的最近的点的距离需要加上A到G的距离。
问题:为什么下一个点,就一定是。从G出发能到达的最短的那个点??
原因:我们不可能越过直接与G连通的点,直接达到一个与G不直接连通的点。例如:当确定了A是到G的一条最短路径的时候,意味着从G出发,想要到达与A连通的顶点的时候必然要经过A