最短路径算法(一):Dijkstra算法
一、算法介绍
迪杰斯特拉(Dijkstra)算法用于计算一个节点到其他所有节点的最短路径。
1、单源
2、贪心算法
3、适用无负权边的情况
二、算法思想
准备2个集合 S 和 U
S保存已经计算好的源节点到此节点最短距离
U保存未计算好最短记录的点
每次从U中取出最小的值,放入S中,其他节点根据此节点重写计算最短距离
图解

以D为源点
第一步:
S={D(0)}
U={A(无穷大),B(无穷大),C(3),E(4),F(无穷大),G(无穷大)}

第2步:
S={D(0),C(3)}
U={A(无穷大),B(13),E(4),F(9),G(无穷大)}

第3步:
S={D(0),C(3),E(4)}
U={A(无穷大),B(13),F(6),G(12)}

第4步:
S={D(0),C(3),E(4),F(6)}
U={A(22),B(13),G(12)}

第5步:
S={D(0),C(3),E(4),F(6),G(12)}
U={A(22),B(13)}

第6步:
S={D(0),C(3),E(4),F(6),G(12),B(13)}
U={A(22)}

第7步:
S={D(0),C(3),E(4),F(6),G(12),B(13),A(22)}
U={}

U中无点时,S即为所求的单源节点到其他所有节点的最短距离
时间复杂度O(V^2)
参考:
https://blog.csdn.net/qq_37796444/article/details/80663810
相关推荐
  chenfei0    2020-02-09  
   风吹夏天    2019-12-07  
   Happyunlimited    2019-11-12  
   humothetrader    2019-06-21  
   duyifei0    2019-06-21  
   duyifei0    2019-06-21  
   zonglinzonglin    2018-08-02  
   MyronCham    2019-04-26  
   韦一笑    2011-05-17  
   lhtzbj    2017-12-12  
   slxshare    2019-01-17  
   Masimaro    2020-06-14  
   rein0    2020-05-03  
   风吹夏天    2020-05-03  
   lixiaotao    2020-04-26  
   horizonheart    2020-04-18  
   RememberMePlease    2020-04-18  
   ustbfym    2020-03-03  
   Oudasheng    2020-01-31