算法解析
1: 设置2个顶点集合S,T
S 存储已经找到的最短路径点的距离
T 存储未处理过的顶点
2: 先把起点A存储到T.准备处理
3: 获取到T的起点A,首先起点A到起点A的距离是0,直接存储到...T的E,C,E直接存储,由于C在5的时候已经存储,length为5,而A=>B length为1,B=>C length为 1,1+1则直接覆盖更新掉之前的C距离,改为:C=>{length:2...,route:ABC} (假想情况,为了方便理解更新最短路径),如果长度大于之前的,则不处理该点
8: 继续获取到E,C周围的点.存储到T
9: 如果已经获取到了终点(可以不需要终点,则之前遍历全部点)...,则不再获取终点周围的点
重复7,8步骤,直到T不存在数据
在这个过程中,可以保证起点到所有点都是最短路径
算法图解过程
例如 10x10 宫格图中:
?...,存储到T
4: 取出T点的其他待处理点,判断路径长度,如果小于之前存储的,则覆盖更新路径
.
.
.