#P1344. 【Day2】复杂度判断(12题)

【Day2】复杂度判断(12题)

第 1 题

for (int i = 0; i < n; i++) ans++; 的时间复杂度是( )。

{{ select(1) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 2 题

for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) ans++; 的时间复杂度是( )。

{{ select(2) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 3 题

for (int i = 1; i <= n; i *= 2) ans++; 的时间复杂度是( )。

{{ select(3) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 4 题

for (int i = n; i > 0; i /= 2) ans++; 的时间复杂度是( )。

{{ select(4) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 5 题

两个独立的 for (int i = 0; i < n; i++) ans++; 顺序执行,总时间复杂度是( )。

{{ select(5) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 6 题

for (int i = 0; i < n; i++) for (int j = 1; j <= n; j *= 2) ans++; 的时间复杂度是( )。

{{ select(6) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 7 题

for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) ans++; 的时间复杂度是( )。

{{ select(7) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 8 题

int i = 1; while (i < n) i += 10; 的时间复杂度是( )。

{{ select(8) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 9 题

int i = 1; while (i < n) i *= 3; 的时间复杂度是( )。

{{ select(9) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 10 题

for (int i = 0; i < n; i++) for (int j = 0; j < 100; j++) ans++; 的时间复杂度是( )。

{{ select(10) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 11 题

for (int i = 0; i < n; i++) for (int j = i; j < n; j++) ans++; 的时间复杂度是( )。

{{ select(11) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)
  • O(n^2)

第 12 题

执行 while (x) { x &= x - 1; },该循环的执行次数取决于( )。

{{ select(12) }}

  • x 的二进制中 1 的个数
  • x 的数值大小
  • x 的二进制位数
  • 固定常数次