You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

有向图中能否实现时间复杂度O(m)的BFS?无向图BFS时间为O(m+n)

有向图中能否实现时间复杂度为O(m)的BFS?

首先,BFS的时间复杂度核心由被访问的顶点数k和被访问的边数l决定,即O(k + l)。下面分情况讨论:

可以实现O(m)复杂度的场景

  • 仅遍历可达子图:如果从起点出发的BFS只遍历可达的顶点和边,那么被访问的顶点数k ≤ l + 1(最坏是链式结构,顶点数比边数多1)。当遍历所有边(l=m)时,k=O(m),此时O(k + l)等价于O(m)。
  • 图中无大量孤立顶点:若整个图的顶点数n满足n=O(m)(比如每个顶点至少关联一条边),即使遍历所有顶点和边,O(n + m)的渐近复杂度也等于O(m)。

无法实现O(m)复杂度的场景

如果图中存在远多于边数的孤立顶点(比如n=1000m),且BFS需要对所有顶点执行初始化操作(比如标记访问状态),这一步的时间成本是O(n),远大于O(m),导致总复杂度无法降到O(m)。

总结:只要不需要处理数量远超边数的孤立顶点,有向图的BFS就能达到O(m)的时间复杂度。

内容的提问来源于stack exchange,提问作者andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:15:41