Thats not just logic. Thats really sensilbe.
re: Bellman-Ford算法 infinity 2008-11-14 21:43
@新手
bellman-ford的优化是通过队列实现的,也就是通常所说的spfa(Shortest Path Faster Algorithm)
具体操作方法是建一个队列queue[],用一个数组dist[]表示各点到起点的距离,用一个数组vis[]表示某点是否在队列里面,然后循以下步骤:
1:将起点入队列。
2:取队首元素u,对u的每一邻接点v实施松弛操作:即如果dist[u]+w[u][v]<dist[v](能被更新),则dist[v]=dist[u]+w[u][v],如果v不再队列中,就将点v入队列。
3:如果队列空则算法结束,否则继续2一直到队列空为止。
时间复杂度大概是O(ke), 其中k为所有顶点进队的平均次数,k一般小于等于2。
还有就是,有时候有些题,不用队列而用栈可能会更快!