算法原理就不多说了,就讲一讲实现 代码采用邻接矩阵的数据结构,a(i,j)代表第i个节点到第j个节点的距离,不能到达为无穷,代码中设为10000000。 另外数组len代表节点0到每个节点到最短路程,每循环一次就更新一次,vis数组表示访问情况,1表示访问过,0表示未访问。 算法分为2步: (1)置len数组的值,直接将矩阵的第一行给len赋值即可 vis[0] = 1; (2)n-2次循环,每次加入一个节点(为什么不是n-1次呢?最后一次就一个点了,没什么好更新的) 每次循环做的事: 1)找到下一个节点(next_node函数) 2)将找到节点的后继的len值进行更新
Read full article from 有向图的Dijakstra算法
No comments:
Post a Comment