学习交流

当前位置 /首页/母婴教育/学习交流/列表

Dijkstra算法解决最短路径问题

Dijkstra算法是大学计算机专业要学习的一种算法,刚刚接触的时候会感觉非常的不好理解,今天就用一个例子来教给大家怎么一步一步的去理解这个算法。

Dijkstra算法解决最短路径问题

操作方法

(01)例子直接看图吧,我们这是一个无向图,首先我们需要找到一个起点,为了方便我们直接按照字母的顺序来,从a点开始

Dijkstra算法解决最短路径问题 第2张
Dijkstra算法解决最短路径问题 第3张

(02)然后我们找出其余所有的与a点相连的点,并根据路径上的权值计算出长度如图中的一样先写上

Dijkstra算法解决最短路径问题 第4张

(03)然后我们来确定第二个点,根据上一步的结果我们可以发现到b的权重是最小的,所以我们确定第二个点是b点,a--b 此时b的权重为3

Dijkstra算法解决最短路径问题 第5张

(04)然后我们找第三个点,现在已经是走到b点了,所以接下来的一步是从b点开始向外延伸,再找出所有与b相连的点,再根据路径上的权值和b点的权值计算出所有与b点相连的点的权值。

(05)根据上一步的结果我们可以确定d点是权值最小的点,所以第三个点应该是d点。

Dijkstra算法解决最短路径问题 第6张

(06)以此类推,下面的几个点依然是用这种方式来确定,与d点相连的有c e两个点,我们计算出来长度是c(d,10)e(e,9)

Dijkstra算法解决最短路径问题 第7张

(07)此时c的权重为10,而上一步c的权重为7,所以应该选择边b--c 而不是d---c

Dijkstra算法解决最短路径问题 第8张

(08)最后一个点e,根据上面的点和路径上的值,来算出权值,根据结果要选择路径d--e

Dijkstra算法解决最短路径问题 第9张

(09)根据上面的每一步的结果最后连起来就是这个图的最短路径。

特别提示

本人能力有限,表达不清楚的地方欢迎询问指正

发现错误可以给我私信留言

TAG标签:Dijkstra 最短 算法 路径 #