我在这里有一个更智能的 Bellman-Ford 版本:
//Queue Q; source s; vertices u, v
Q ← s // Q holds vertices whose d(v) values have been updated recently.
While (Q !empty)
{
u ← Dequeue(Q)
for each neighbor v of u
{
Relax(u, v)
if d(v) was updated by Relax and v not in Q
Enqueue(v)
}
}
谁能想到这种算法的下限为 (V*E) 时间复杂度的图类型,其中 v = #vertices, E = #edges
我想看看这其中的陷阱在哪里。