这个函数的时间复杂度是多少? (嵌套 for 循环)

What is the time complexity of this function? (nested for loop)

我认为是 O(n * m) 但也认为是 O(n)

分不清哪一个是正确的..

考虑到第一个循环只循环 20 次(固定数量),第二个嵌套 for 循环只循环 number / 20,最后第三个嵌套循环 3 次。

所以它是O(n * m / 20 * 3),我们可以称它为O(n * m * k)?这是正确的吗?

或者它是 O(n) 因为第二个循环时间复杂度只会影响它,因为它根据用户输入的数字而不同。

function loop(number) {
  let answer = 0;

  for (let i = 0; i < 20; i++) {
    for (let j = 0; j < number / 20; j++) {
      for (let k = 0; k < 3; k++) {
        answer++;
      }
    }
  }

  return answer;
}

外循环总是恰好循环 20 次,内循环总是恰好循环 3 次。唯一有任何可变性的是中间循环,它循环 number / 20 次。因此,您将递增 answer 20 * 3 * (n / 20) 次,并且由于大 O 表示法忽略常量,因此计算结果为 O(N).