Algorithm 完整图的广度优先搜索的复杂性是什么?
BFS的复杂度是线性的,即O(V+E),但有向完全图中的边总数是V*(V-1),它是图大小的二次函数。那么BFS是否需要O(V^2)时间来遍历一个完整的图呢?BFS在Algorithm 完整图的广度优先搜索的复杂性是什么?,algorithm,big-o,graph-theory,breadth-first-search,Algorithm,Big O,Graph Theory,Breadth First Search,BFS的复杂度是线性的,即O(V+E),但有向完全图中的边总数是V*(V-1),它是图大小的二次函数。那么BFS是否需要O(V^2)时间来遍历一个完整的图呢?BFS在O(V+E)时间内运行,前提是该图由邻接列表结构表示 在稠密情况下,您也会看到答案是O(V+E)。(表示为邻接列表) 对于邻接矩阵O(V^2) 无论图形如何,您都将首先覆盖起点的邻居。然后对邻居也重复这个。所以你可以看到,它总是要在O(V+E)时间内遍历,但是正是这种表示使得邻接矩阵很难遍历。所以它将是O(V^2)1 1这是因为每次
O(V+E)
时间内运行,前提是该图由邻接列表结构表示
在稠密情况下,您也会看到答案是O(V+E)
。(表示为邻接列表)
对于邻接矩阵O(V^2)
无论图形如何,您都将首先覆盖起点的邻居。然后对邻居也重复这个。所以你可以看到,它总是要在O(V+E)
时间内遍历,但是正是这种表示使得邻接矩阵很难遍历。所以它将是O(V^2)
1
1这是因为每次我们想找到与给定顶点“u”相邻的边时,我们都会遍历整个数组邻接矩阵[u]
,它的长度为| V |BFS在O(V+E)
时间内运行,前提是图形由邻接列表结构表示
在稠密情况下,您也会看到答案是O(V+E)
。(表示为邻接列表)
对于邻接矩阵O(V^2)
无论图形如何,您都将首先覆盖起点的邻居。然后对邻居也重复这个。所以你可以看到,它总是要在O(V+E)
时间内遍历,但是正是这种表示使得邻接矩阵很难遍历。所以它将是O(V^2)
1
1这是因为每次我们想找到与给定顶点“u”相邻的边时,我们都会遍历整个数组,长度为| V |是的,我假设你已经做了计算
O(V+E) = O(V + V*(V-1))
= O(V + V*V - V)
= O(V*V)
是的,我想你已经算过了
O(V+E) = O(V + V*(V-1))
= O(V + V*V - V)
= O(V*V)
检查答案。对不起,不方便。我没看到阿尔及姆是BFS。检查我的答案。检查答案。对不起,不方便。我没看到阿尔及姆是BFS。检查我的答案。这里我得到的是顶点数和边数之间的关系。完整图中的边数是顶点数的函数,对于完整有向图,精确地说是V*(V-1)。是的,但表示很重要。这就是我说的,这里我得到的是顶点数和边数之间的关系。完整图中的边数是顶点数的函数,对于完整有向图,精确地说是V*(V-1)。是的,但表示很重要。这就是我说的。考虑到这个结果,我们能否得出结论,BFS使用邻接列表的最坏情况不是线性的,而是二次的?@UttakarshTikku算法的输入大小是线性的,它的顶点数是二次的。非常感谢!!这帮了大忙!根据这个结果,我们能否得出结论,BFS使用邻接列表的最坏情况不是线性的,而是二次的?@UttakarshTikku算法的输入大小是线性的,即顶点数是二次的。非常感谢!!这帮了大忙!