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

两层while循环代码时间复杂度推导结果与选项不符求分析

问题代码
x = 1;
while(x<n)
{
    x = x + n / 10;
    m = n*n;
    y = n;
    while(m>y)
    {
        m=m-100;
        y=y+20;
    }
}
推导疏漏点
  • 你对内层循环的时间复杂度计算错误:内层循环的终止条件是m <= y,每次循环两个变量的差值会固定减少100+20=120,初始差值为n² - n,因此内层循环的执行次数为(n² -n)/120,量级是O(n²),不是你误以为的O(n)。
  • 外层循环的执行次数确实是常数次:每次x增加n/10,从1增长到n最多只需要执行10次,属于O(1)级别的开销,不会影响整体复杂度的量级。
最终复杂度结论

整体时间复杂度是常数乘以O(n²),最终为O(n²),匹配给出的第一个可选答案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:36:07