第1页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共6页Dijkstra算法的流程图第2页共6页第1页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共6页需求和规格说明:Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径
主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止
Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低
算法本身并不是按照我们的思维习惯——求解从原点到第一个点的最短路径,再到第二个点的最短路径,直至最后求解完成到第n个点的最短路径,而是求解从原点出发的各有向路径的从小到大的排列,但是算法最终确实得到了从原点到图中其余各点的最短路径,可以说这是个副产品,对于算法的终结条件也应该以求得了原点到图中其余各点的最短路径为宜
清楚了算法的这种巧妙构思后,理解算法本身就不是难题了
实现注释:想要实现的功能:Dijkstra算法是用来求任意两个顶点之间的最短路径
在该实验中,我们用邻接矩阵来存储图
在该程序中设置一个二维数组来存储任意两个顶点之间的边的权值
用户可以将任意一个图的信息通过键盘输入,让后在输入要查找的两个顶点,程序可以自动求出这两个顶点之间的最短路径
已经实现的功能:在该实验中,我们用邻接矩阵来存储图
在该程序中设置一个全局变量的二维数组,用它来存储任意两个顶点之间的边的权值
然后通过最短路径的计算,输入从任意两个顶点之间的最短路径的大小
用户手册:对于改程序,不需要客户进行什么复杂的输入,关键是用来存放图的任意两个顶点之间的边的权值的二维数组的初始化,即将要通过Dijkstra算法求最短路径的图各条边的权值放入二维数组中
这样程序就可以自动的计算出任意两个顶点之间的最短路径并且进行输出
设计思想:s为源,w[u,v]为点u