- SPFA算法有两个优化算法 SLF 和 LLL:
- SLF:Small Label First 策略,设要加入的节点是j,队首元素为i,若dist(j)<dist(i),则将j插入队首,
- 否则插入队尾。
- LLL:Large Label Last 策略,设队首元素为i,队列中所有dist值的平均值为x,若dist(i)>x则将i插入
判断有无负环:如果某个点进入队列的次数超过V次则存在负环(SPFA无法处理带负环的图)
SPFA求最短路时是对存在负权环有影响,因为会一直入队一直循环下去,而存在正权环无影响,因为求最短路是递减的过程,正权环不会一直绕下去,但负权环会,而利用SPFA求最长路时正好相反。