Dijkstral算法:
从起点A出发,可以直接到达的点是B、D、E,lowcost={max,10,max,30,100},visit={1,0,0,0,0},lowcost从A到其他节点的距离,visit已经找过的节点
找出和A相连的边中最短的,A->B边时最短的,这个时候我们可以知道A到B的最短路是10,这个时候我们需要比较是从A直接到达B、C、D、E距离短还是通过B作为中转更短,B连接的点只有C且C是A无法直接到达的,所有通过B中转更短。
数组更新为lowcost={max,10,60,30,100},visit={1,1,0,0,0}
然后在lowcost找出最短路,visit为1的节点跳过,最短路为A->D=30,看是否更新lowcost,A->D->C=50小于A->B->C=60;
A->D-E=90小于A->E=100,lowcost更新lowcost={max,10,50,30,90},visit={1,1,0,1,0}
然后在lowcost找出最短路,visit为1的节点跳过,最短为A->D->C=50,看是否更新lowcost,
A->D->C->E=60小于A->D->E=90;