Advertisement

Dijkstra算法用于解决最短路径问题

阅读量:

最短路径问题是一种常见的图论问题,其基本设定是在一个无向连通图中,已知各节点之间的连接关系以及边的权重,目标是找出从某一特定节点到其他所有节点的最短路径。本篇文章由blackcardriver根据经典的Dijkstra算法原理编写,旨在提供一种解决最短路径问题的实现模板、思路及分析。文章内容主要用于个人复习与知识分享,若存在疏漏或错误之处,恳请读者指出并予以纠正。为备战六级考试,所有注释均采用英文形式,敬请谅解。欢迎各位读者留言交流。

所需的数据结构包括:

  1. certain_mun ---------//用于统计已确定最短路径的节点数量。
  2. certain[]-----------------//certain[i]用于标识节点i是否已完成最短路径计算。
  3. distant[]-----------------//distant[i]表示从起点到节点i当前已知的最短距离。
  4. edge{node1,node2,val}-----------//用于描述一条无向边的信息。

整体流程如下:

  1. 初始化相关数据结构,例如对 distant[i]certain[i] 进行初始设置。
  2. 在尚未确定最短路径的所有节点中选择一个当前距离最小的节点,并将其对应的最短路径确认下来。随后更新 **cert

全部评论 (0)

还没有任何评论哟~