题目
求顶点A到其他个顶点的最短路径,写出各步骤状态
解题步骤
先设置一个集合
我们要做的就是把数据填上去,上面这个集合最后要写的就是A点到以上这些点的最短距离。
第一步
当前在A点,可以找到的距离如下:
你看,A点连着的点只有三个,B,C,D,我们先把这些已知的距离写上。
我们确定了C点的数据
第二步
从上面的集合看,最短的地方是C点,好,那我们跳到C点。
当前在C点,我们假如发现了更短的路径则覆盖掉原来的数据。
我们不难发现,从C点F点D点比直接从A点D点要快,所以,我们把D处的数据12换成(2+4+5=11)。
另外,此时,在C点,可以到达E,F点
依次类推有集合如下:
此时,除了C点外,最短的就是AF了,所以,接下来是以F为起步
至此,我们确定了B,C,D,F点的数据
第三步
我们发现AFG是6+10=16,但是,AFDG是6+5+3=14,因此我们更倾向于后者。
在F处没有发现比从C出发更快的路径,因此,此时集合:
至此,全部点已经确定了
总结
主要是贪心算法的思想,我们着眼于,我们走到最近的点,到达目标一直都选择更近的路径。