【发布时间】:2018-11-28 05:25:30
【问题描述】:
我知道对于连接的间接图,BFS 的运行时间是 O(V+E)。但是如果图没有连接呢?然后我假设我们需要先运行一个循环来检查每个顶点的条件(访问与否)。
这是我想法的简单 qseudocode。假设每个顶点都有白色作为开始时未访问的标志。访问时为灰色,拍摄时为黑色。
//无连接间接图的BFS
BFS(G):
for each v in G:
if (v.color is white) do:
v.color = gray;
enqueue(Q, v);
while Q is not empty do:
u = dequeue(Q);
while s is adjacent to u has color white
s.color = gray;
enqueue(Q,s);
u.color = black;
这是我对未连接间接图的 qseudocode 的猜测。我很难弄清楚运行时间。我认为它仍然是 O(V + E),但我无法真正给出合理的解释。
请问如何澄清这个qseudocode的运行时间?或者如果我的qseudocode效率低,请告诉我一个有效的。
谢谢!
【问题讨论】:
标签: algorithm graph-algorithm breadth-first-search