计算机网络-17-网络层之迪杰斯特拉算法

计算机网络-17-网络层之迪杰斯特拉算法
计算机网络-17-网络层之迪杰斯特拉算法
首先将A拉入S集合
然后通过A到各个点的距离
然后如下图:
计算机网络-17-网络层之迪杰斯特拉算法
(1) 然后发现U不为空,对U里面的距离进行排序,发现A到B的距离最小,接着把A到B拉入S集合。
计算机网络-17-网络层之迪杰斯特拉算法
(2) 然后计算A通过B到达各个节点的距离
计算机网络-17-网络层之迪杰斯特拉算法
计算机网络-17-网络层之迪杰斯特拉算法
因为原来是A->C是9,11比9大,所以不更新,接下来得到一个新的表
计算机网络-17-网络层之迪杰斯特拉算法
因为:A、B属于S集合。
计算机网络-17-网络层之迪杰斯特拉算法
(3) 然后再进行排序,发现A->F的距离最短。
然后将A->F拉入S集合
计算机网络-17-网络层之迪杰斯特拉算法
然后计算,(A到F)到各个节点的距离
计算机网络-17-网络层之迪杰斯特拉算法
(4) 然后将A->D拉入S集合
计算机网络-17-网络层之迪杰斯特拉算法
然后计算,(A到D)到各个节点的距离:
计算机网络-17-网络层之迪杰斯特拉算法
发现A->E = 9;比原先的10少,所以更新。
计算机网络-17-网络层之迪杰斯特拉算法计算机网络-17-网络层之迪杰斯特拉算法
(5)
计算机网络-17-网络层之迪杰斯特拉算法
发现A->c、A->E的距离都为9,那么随便选择哪个都可以,这里选择:A->E,将其拉入S集合,如下:
计算机网络-17-网络层之迪杰斯特拉算法
同理:计算,(A到E)到各个节点的距离:
计算机网络-17-网络层之迪杰斯特拉算法
比9大不更新。
(6) 将A->C拉入S集合,此时,U为空,算法结束,得到A到各个节点的最短路径,如下结果:
计算机网络-17-网络层之迪杰斯特拉算法