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

含任意次数嵌套循环的时间复杂度分析及O(n²)合理性疑问

嵌套循环的时间复杂度推导

首先看你给出的伪代码:

i:1-n loop 
   j:N(i) loop
    stmt;
   end

   k:M(i) loop
    stmt;
   end
end

推导步骤

  1. 计算总执行次数
    主循环执行n次,每次迭代里j循环跑N(i)次,k循环跑M(i)次。所有内层循环的总执行次数为:
    Total = Σ(N(i) + M(i)) ,其中i从1到n
    拆分为两个求和项后:Total = ΣN(i) + ΣM(i)

  2. 分析渐近上界
    题目明确N(i)和M(i)的上限为n-1,也就是对任意i,都有N(i) ≤ n-1、M(i) ≤ n-1。代入求和式可得:

  • ΣN(i) ≤ n*(n-1) = O(n²)
  • ΣM(i) ≤ n*(n-1) = O(n²)

根据大O表示法的性质,两个O(n²)相加的结果仍然是O(n²),因此总执行次数的渐近上界为O(n²)。

关于“是否可以称其为O(n²)”的结论

根据大O表示法的定义(描述算法运行时间的上界),称这段代码的时间复杂度为O(n²)是正确的。但要注意:这不是唯一的正确表述——如果实际的ΣN(i)+ΣM(i)增长速度更慢(比如所有N(i)、M(i)都是常数),那么O(n)也是正确的上界。只有当求和式的增长速度恰好与n²同阶时,O(n²)才是最紧的上界(此时用Θ(n²)描述更准确)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:25:34