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

请求验证:我对该while循环的时间复杂度计算是否正确?

关于while循环时间复杂度计算的确认

你的计算完全正确,具体分析如下:

逐行执行次数与成本分析

  • count = 0;:成本c1,执行1次
  • int j = N;:成本c2,执行1次
  • while(j>1):成本c3,执行log₂(N)+1次(每次进入循环前都会判断条件,直到j<=1时最后一次判断不满足,停止循环)
  • count += 1;:成本c4,执行log₂(N)次(仅当循环条件满足时才执行,共进入循环log₂(N)次)
  • j= j/2;:成本c5,执行log₂(N)次(同循环体内部语句的执行次数)

总时间复杂度推导

总时间T(N)的表达式为:

T(N) = c1*1 + c2*1 + c3*(log₂(N)+1) + c4*log₂(N) + c5*log₂(N)

整理后可得:

T(N) = (c1 + c2 + c3) + (c3 + c4 + c5)*log₂(N)

根据大O表示法的规则,我们只保留最高阶项并忽略常数系数,低阶的常数项(c1 + c2 + c3)可以直接舍去,因此最终时间复杂度为O(log₂N),通常也可简化为O(log N)(对数的底数可通过换底公式转换为常数系数,不影响大O复杂度的判定)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:30:58