今天我们学习了图论中关于单源最短路的一些算法,相较于昨日,难度大了一些
Dijkstra(仅适用于无负边权情况)
以下是堆优化版
Bellman-ford与SPFA(队列优化后的Bellman-ford)
以下是SPFA(虽然是优化后的Bellman-ford算法,时间复杂度通常情况下比原算法降低了不少,但是仍有会使其时间复杂度退化的图——“菊花图”)
该图便是一个典型的“菊花图”
这两种算法都可用于判断正负环,仅需在原模板内加入判断个顶点进出队次数是否超过n即可
关于这两种算法的一些看法
我认为,在大部分情况下,其实Bellman-ford就够用了,毕竟有时候修改这么长一段模板去写会比较耗时,除非必须得用SPFA才能过。然后这两个算法我感觉也许用边集数组来存储图可能会更好写(如果你问我为什么这上面用的是邻接链表,我只能回答你—— 懒得改 这是给各位的小考验,要各位自己写)