Dijkstra-解决最短路径问题

Dijkstra-解决最短路径问题_第1张图片

1、从A开始(也可以从其他点,此处选择从A)

将A 加入树,A被圈

Dijkstra-解决最短路径问题_第2张图片

列出最短路径数组:

Dijkstra-解决最短路径问题_第3张图片

2、

确定从A到其他顶点的最短距离为50,A-->B

Dijkstra-解决最短路径问题_第4张图片

将B加入树:

Dijkstra-解决最短路径问题_第5张图片

更新最短路径数组:

Dijkstra-解决最短路径问题_第6张图片

比较到C的距离:

Dijkstra-解决最短路径问题_第7张图片

AB+BC=110<无穷,更新到C的距离为110:

Dijkstra-解决最短路径问题_第8张图片

比较到D的距离:

Dijkstra-解决最短路径问题_第9张图片

AB+BD=140>AD80不用更新到D的距离

比较到E的距离:

Dijkstra-解决最短路径问题_第10张图片

不用更新,至此第二轮比较完成,除了B外,A到其他顶点的最短距离为80,A-->D,将D加入树

Dijkstra-解决最短路径问题_第11张图片

3、开始新一轮的更新最短路径数组:

比较到C的距离:

Dijkstra-解决最短路径问题_第12张图片

AD+DC=100C110,更新到C的最短距离:

Dijkstra-解决最短路径问题_第13张图片

比较到E的距离:

Dijkstra-解决最短路径问题_第14张图片

AD+DE=70E无穷,更新到E的最短距离:

Dijkstra-解决最短路径问题_第15张图片

至此,完成第三轮比较,及数组更新:

Dijkstra-解决最短路径问题_第16张图片

除B、D外,A到其他顶点的最短距离为100,A-->C,因此,将C加入树

Dijkstra-解决最短路径问题_第17张图片

4、开始第4轮的更新数组:

比较到E的距离:

Dijkstra-解决最短路径问题_第18张图片

AC100+CE40=140

Dijkstra-解决最短路径问题_第19张图片

至此,完成了第4轮数组的更新,除在树中的顶点外,最短距离为140,A-->E

Dijkstra-解决最短路径问题_第20张图片

将E加入树:

Dijkstra-解决最短路径问题_第21张图片

所有到A的最短路径都找到了。图中加粗黑线。

你可能感兴趣的:(Dijkstra-解决最短路径问题)