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

基于n计算代码语句执行次数的正确方法及实例问询

基于n计算代码语句执行次数的方法详解

嘿,我来给你把这个问题讲透!咱们拿具体的代码例子结合你提到的MyStatement1和MyStatement2来分析,你就能快速掌握判断方法。

示例代码场景

先看一段典型的嵌套循环代码:

// 外层循环:从i=0到i=n-1,共执行n次
for (int i = 0; i < n; i++) {  
    MyStatement1;  // 位于外层循环体
    // 内层循环:每一次外层循环,j从0到j=n-1,共执行n次
    for (int j = 0; j < n; j++) {  
        MyStatement2;  // 位于内层循环体
    }
}

各语句执行次数分析

1. MyStatement1的执行次数:n次

原因很直接:它在外层循环的循环体里,外层循环的迭代条件是i < n,i从0开始,会取到0、1、2...n-1,一共n个值,每一次外层循环都会执行一次MyStatement1,所以总次数是n次。

2. MyStatement2的执行次数:n²次

它在内层循环的循环体里,而内层循环是嵌套在外层循环里的:

  • 每执行1次外层循环,内层循环会完整跑n次(j从0到n-1)
  • 外层循环一共跑n次,所以内层循环的总执行次数就是n * n = n²,对应MyStatement2的执行次数就是n²次。

通用判断方法

不管代码结构怎么变,核心逻辑都是拆解循环层级,统计每一层的迭代次数:

  • 先定位语句所在的循环层级(是外层、内层,还是并列循环)
  • 嵌套循环:各层循环的迭代次数相乘(比如三层嵌套就是nnn)
  • 并列循环:各循环的迭代次数相加(比如两个独立的for循环,每个跑n次,总次数就是n+n)
  • 注意循环的步长、起始值和终止条件:比如步长为2的循环for(int i=0; i<n; i+=2),迭代次数是⌈n/2⌉(向上取整);如果终止条件是i <= n,那迭代次数就是n+1次。

举个变种例子,如果内层循环条件是j < i,那MyStatement2的执行次数就是1+2+...+(n-1) = n(n-1)/2次——这时候就是内层循环的次数随外层i的变化而累加,不是固定的n次了。

其实只要把每一层循环的执行逻辑拆解开,一步一步统计,就不会出错啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:43:44