#P0319. 【选择题】代码时间复杂度

【选择题】代码时间复杂度

代码时间复杂度

1.1. 观察下面的代码,请问它的时间复杂度是多少?

int func(int n,int m){
    int ans = 0;
    for(int i = 1; i <= n ; i++){
        int j = 0;
        while(j ++ <= m){
            if((i + j) % 2 == 1) ans ++;
        }
    }
    return ans;
}

{{ select(1) }}

  • O(nm)O(nm)
  • O(n)O(n)
  • O(n2)O(n ^ 2)
  • O(logn)O(logn)

2.2. 观察下面的代码,请问它的时间复杂度是多少?

int func(int n){
    int ans = 0;
    for(int i = 1; i <= n ; i++){
        for(int j = 1; j <= 10 ; j++){
            if(i % j == 0 && (i + j) % 2 == 1)
                ans ++;
        }
    }
    return ans;
}

{{ select(2) }}

  • O(nm)O(nm)
  • O(n2)O(n^2)
  • O(n)O(n)
  • O(logn)O(logn)

3.3. 观察下面的代码,请问它的时间复杂度是多少?

void func(int n){
    int ans = 0;
    for(int i = 1; i <= n ; i++)ans += i;
    while(ans --){
        cout << ans << endl;
    }
}

{{ select(3) }}

  • O(nlogn)O(nlogn)
  • O(n2)O(n^2)
  • O(n)O(n)
  • O(logn)O(logn)

4.4. 观察下面的代码,请问它的时间复杂度是多少?

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

{{ select(4) }}

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

5.5. 观察下面的代码,请问它的时间复杂度是多少?

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

{{ select(5) }}

  • O(nm)O(nm)
  • O(nm2)O(\frac{nm}{2})
  • O(nm4)O(\frac{nm}{4})
  • O(nm8)O(\frac{nm}{8})