Dijkstra记录

材料

  • ①G v为节点,E为边,需要知道权重
  • ②array d[v] 原点到节点v的最短路径
  • ③array pai/pre[v] 节点v的前驱节点

算法过程

  • 第一步 初始化 , 原点为s, d[s],为0 ,其余节点 i d[i]无穷
  • 第二步 (存在集合 S 和集合 Q,S+Q=V)
    ①开始: S为 , Q为 V
    ②进行: 选取Q中 距原点最近的 结点u ,从Q移到S。(开始时u为原点)
    u指向的每条边 进行松弛操作,若改进,更新 d[] 与 pre[]

算法思想

Dijkstra采用  贪心策略   效率快   必须是 ***正权重***
  • 疑惑:u加入到S后,d[u]为s到u的最短路径 见书证明

你可能感兴趣的:(Dijkstra记录)