SPFA是改良后的BellmanFord(在刘汝佳的入门经典2上,甚至直接将SPFA归为BellmanFord的队列优化版本)。
这是算法的伪代码
d[s] = 0, 其余d[?] = INF; 将s入队,并做标记; do{ 取队首u。 for each (u, v){ 如果d[v] > d[u] + dist(u→v) d[v] = d[u] + dist(u→v) 如果v不在队里 v入队 } }until 队列为空