题目

求顶点A到其他个顶点的最短路径,写出各步骤状态
用Dijkstra算法解决某点到其他顶点最短距离的问题

解题步骤

先设置一个集合[B,C,D,E,F,G][B,C,D,E,F,G]
我们要做的就是把数据填上去,上面这个集合最后要写的就是A点到以上这些点的最短距离。

第一步

当前在A点,可以找到的距离如下:
[15,2,12,?,?,?][15,2,12,?,?,?]
你看,A点连着的点只有三个,B,C,D,我们先把这些已知的距离写上。

我们确定了C点的数据

第二步

从上面的集合看,最短的地方是C点,好,那我们跳到C点。
当前在C点,我们假如发现了更短的路径则覆盖掉原来的数据。

我们不难发现,从C点\rightarrowF点\rightarrowD点比直接从A点\rightarrowD点要快,所以,我们把D处的数据12换成(2+4+5=11)。

另外,此时,在C点,可以到达E,F点

依次类推有集合如下:
[15,2,11,10,6,?][15,2,11,10,6,?]

此时,除了C点外,最短的就是A\rightarrowF了,所以,接下来是以F为起步

至此,我们确定了B,C,D,F点的数据

第三步

我们发现A\rightarrowF\rightarrowG是6+10=16,但是,A\rightarrowF\rightarrowD\rightarrowG是6+5+3=14,因此我们更倾向于后者。

在F处没有发现比从C出发更快的路径,因此,此时集合:
[15,2,11,10,6,14][15,2,11,10,6,14]

至此,全部点已经确定了

总结

主要是贪心算法的思想,我们着眼于,我们走到最近的点,到达目标一直都选择更近的路径。

相关文章:

  • 2021-04-05
  • 2022-12-23
  • 2022-12-23
  • 2021-08-05
  • 2021-07-01
猜你喜欢
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2021-04-02
  • 2021-12-20
  • 2021-08-07
  • 2022-02-05
相关资源
相似解决方案