1.问题
[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]
对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径,按实验报告模板编写算法。
2.解析
Dijkstra算法(单源点路径算法,要求:图中不存在负权值边),Dijkstra算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。 Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。
3.设计
while (!q.empty())