广度优先搜索完整图表的复杂性是多少?

时间:2017-08-25 02:38:23

标签: algorithm big-o graph-theory breadth-first-search

BFS的复杂性据说是线性的,即O(V + E),但有向完整图中的边的总数是V *(V-1),它是2的函数大小图表。那么BFS会花费O(V ^ 2)时间遍历完整的图形吗?

2 个答案:

答案 0 :(得分:1)

BFS在O(V + E)时间运行,前提是图表由邻接列表结构表示。

在密集的情况下,您会看到答案为O(V+E)。 (代表是邻接名单)。

如果是邻接矩阵O(V^2)

无论图表如何,您将始终首先覆盖起点的邻居。然后对邻居重复这个。所以你可以看到它总是必须在O(V+E)时间遍历,但它是表示邻接矩阵很难的表示。所以它将是O(V^2) 1

1 这是因为每当我们想要找到与给定顶点'u'相邻的边时,我们遍历整个数组adjmatrix[u],这是长度| V |

答案 1 :(得分:1)

是的,我猜你已经做过数学了。

O(V+E) = O(V + V*(V-1))
       = O(V + V*V - V)
       = O(V*V)