Dijkstra

作者: wncbbnk | 来源:发表于2019-03-24 17:56 被阅读0次

1.问题

单源最短路径

2

1.png

最短路径数组就是当前各个节点到A的距离
前驱数组就是相应距离的前一个节点


image.png

此时在V-S中,最短路径数组:

                   matrix
      A     B     C     D     E     F
A    0     6     3     -1     -1    -1
B    6     0     2      5     -1    -1
C    3     2     0      3      4    -1    
D   -1     5     3      0      2     3
E   -1    -1     4      2      0     5
F   -1    -1    -1      3      5     0
distArr={
    B: 6,
    C: 3, //最短
    D: oo,
    E: oo,
    F: oo,
}
prevArr={
    A: nil,
    B: A,
    C: A,
    D: nil,
    E: nil,
    F: nil,
}

将C加入S,此时S={A, C},V-S={B, C, D, E, F}
然后以C跳板,看是否会改变最短路径数组,
C与V-S中的B、D、E相邻:
distArr[B]=min{distArr[C]+matrix[C, B], distArr[B]}=min{3+2, oo}=5,修改prevArr[B]=C
distArr[D]=min{distArr[C]+matrix[C, D], distArr[D]}=min{3+3, oo}=6,修改prevArr[D]=C
distArr[E]=min{distArr[C]+matrix[C, E], distArr[E]}=min{3+4, oo}=7,修改prevArr[E]=C
此时如下图


image.png

相关文章

  • Dijkstra

    Dijkstra Conception Dijkstra is a single source shortest ...

  • 最短路径模板

    堆优化的Dijkstra 普通Dijkstra SPFA

  • 图算法(二)最短路

    本文将介绍三种常见的最短路算法:Dijkstra,Floyd,SPFA Dijkstra Dijkstra是有向图...

  • 图的最短路径

    Dijkstra算法&Floyd算法 一、Dijkstra算法 Dijkstra算法思想: 只计算v0出发到其他顶...

  • 深入解析Dijkstra's Algorithm ——

    什么是Dijkstra算法? Dijkstra算法是用来寻找最短路径最著名的算法之一。具体来说,Dijkstra算...

  • 算法模板(三)最短路问题

    Dijkstra SPFA Floyd

  • DFS BFS

    BFS DFS Dijkstra

  • ——Dijkstra

    dijkstra由于是贪心的,每次都找一个距源点最近的点(dmin),然后将该距离定为这个点到源点的最短路径。但如...

  • Dijkstra

  • Dijkstra

    1.问题 单源最短路径 2 最短路径数组就是当前各个节点到A的距离前驱数组就是相应距离的前一个节点 此时在V-S中...

网友评论

      本文标题:Dijkstra

      本文链接:https://www.haomeiwen.com/subject/gligvxtx.html