#P0778. 时间复杂度分析选择题

时间复杂度分析选择题

1.1. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i += 3) {
    ans += i;
}

{{ select(1) }}

  • O(1)O(1)
  • O(log⁡n)O(\log n)
  • O(n)O(n)
  • O(n2)O(n^2)

2.2. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= 20; j++) {
        ans += i + j;
    }
}

{{ select(2) }}

  • O(1)O(1)
  • O(n)O(n)
  • O(20n2)O(20n^2)
  • O(n2)O(n^2)

3.3. 观察下面的代码,时间复杂度是( )。

int cnt = 0;
for (int i = 1; i <= n; i *= 2) {
    cnt++;
}

{{ select(3) }}

  • O(1)O(1)
  • O(log⁡n)O(\log n)
  • O(n)O(n)
  • O(nlog⁡n)O(n \log n)

4.4. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
        ans++;
    }
}

{{ select(4) }}

  • O(n+m)O(n + m)
  • O(nm)O(nm)
  • O(n2)O(n^2)
  • O(m2)O(m^2)

5.5. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= i; j++) {
        ans++;
    }
}

{{ select(5) }}

  • O(n)O(n)
  • O(nlog⁡n)O(n \log n)
  • O(n2)O(n^2)
  • O(2n)O(2^n)

6.6. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j *= 2) {
        ans++;
    }
}

{{ select(6) }}

  • O(n)O(n)
  • O(log⁡n)O(\log n)
  • O(nlog⁡n)O(n \log n)
  • O(n2)O(n^2)

7.7. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i++) {
    ans += i;
    if (i == 5) {
        break;
    }
}

{{ select(7) }}

  • O(1)O(1)
  • O(log⁡n)O(\log n)
  • O(n)O(n)
  • O(n2)O(n^2)

8.8. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
        for (int k = 1; k <= 3; k++) {
            ans++;
        }
    }
}

{{ select(8) }}

  • O(n)O(n)
  • O(n2)O(n^2)
  • O(n3)O(n^3)
  • O(3n)O(3^n)

9.9. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i *= 2) {
    for (int j = 1; j <= m; j++) {
        ans++;
    }
}

{{ select(9) }}

  • O(nm)O(nm)
  • O(mlog⁡n)O(m \log n)
  • O(nlog⁡m)O(n \log m)
  • O(log⁡n+m)O(\log n + m)

10.10. 观察下面的代码,时间复杂度是( )。

int ans = 0;
for (int i = 1; i <= n; i++) {
    ans += i;
}
while (ans > 0) {
    ans--;
    if (ans % 3 == 0) {
        continue;
    }
    cout << ans << endl;
    if (ans == 1) {
        break;
    }
}

{{ select(10) }}

  • O(n)O(n)
  • O(log⁡n)O(\log n)
  • O(nlog⁡n)O(n \log n)
  • O(n2)O(n^2)