Lecture 15 单源最短路径
Lecture 16 Dijkstra算法
一个最短路径必然不会包含一个有负权重的环。(会造成无限循环)
而非负权重有环图里也不会包含这个环。(抄近路)
d(v) 记录当前最短路径权重
π(v)记录回推的节点位置
不断对d(v)进行更新,并更新π(v)–>松弛
DAG先进行拓扑排序 复杂度O(V+E)
对每一个顶点初始化O(V)
对每一条边松弛 O(E)
总O(V+E)
有向无负权重图 Dijskstra
用最小优先级队列存储结点 每次取d最小者对其进行松弛
有向有负权重图 Bellman-Ford