求!Dijkstra算法计算两点之间最短路径的过程, 万分感谢啊。

来源:百度知道 编辑:UC知道 时间:2024/05/10 02:16:33
比如,先加一个邻接矩阵,比如说一个8X8的矩阵,把某两点之间的最短路给出来。主要想知道这个过程是什么样的,怎么通过一个个点计算的?

假设Mdis[v]表示从原点到节点V的最短路径长度,通过以下算法确定从原点出发的单源最短路径。

1、选择一个还未扩展过的Mdis值最小的节点V*
2、通过节点V*所连接的每一条边执行松弛操作,i.e. mdis[k] = min{mdis[k], mdis[v] + cost<v, k>}
3、标记节点V为已扩展过,重复第一步直到所有节点都扩展过。

以上算法的时间复杂度为O(n^2),可以通过二叉堆优化到O(mlogn)