造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

Bellman-Ford算法伪代码

2018/06/19243 作者:佚名
导读: PASCAL For i:=1 to |V|-1 doFor 每条边(u,v)∈E doRelax(u,v,w);For每条边(u,v)∈E doIf dis[u]+w<dis[v] Then Exit(False) C&C++ bool Bellman-Ford(G,w,s) //图G ,边集 函数 w ,s为源点1 for each vertex

PASCAL

For i:=1 to |V|-1 do

For 每条边(u,v)∈E do

Relax(u,v,w);

For每条边(u,v)∈E do

If dis[u]+w<dis[v] Then Exit(False)

C&C++

bool Bellman-Ford(G,w,s) //图G ,边集 函数 w ,s为源点

1 for each vertex v ∈ V(G) //初始化 1阶段

2 d[v] ←+∞;

3 d[s] ←0; //1阶段结束

4 for(int i=1;i<|v|;i++) //2阶段开始,双重循环。

5 for each edge(u,v) ∈E(G) //边集数组要用到,穷举每条边。

6 if(d[v]> d[u]+ w(u,v))//松弛判断

7 d[v]=d[u]+w(u,v); //松弛操作2阶段结束

8 for each edge(u,v) ∈E(G)

9 if(d[v]> d[u]+ w(u,v))

10 return false;

11 return true;

时间复杂度

算法时间复杂度O(VE)。因为算法简单,适用范围又广,虽然复杂度稍高,仍不失为一个很实用的算法。

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读