#6710. 时间复杂度专项练习 2
时间复杂度专项练习 2
1. 给定 n 个整数,每个整数最多 10 位,对每个数进行数位分离,时间复杂度是?
{{ select(1) }}
- O(n)
- O(10n)
- O(n log n)
- O(n²)
2. 以下代码的时间复杂度是?
for(int i = 1; i <= n; i++){
for(int j = i; j > 0; j /= 10){
cnt++;
}
}
{{ select(2) }}
- O(n)
- O(n log n)
- O(n²)
- O(n³)
3. 以下代码的时间复杂度是?
for(int i = 1; i <= n; i++){
int x = i;
while(x > 0){
x /= 10;
}
for(int j = 1; j <= 5; j++){
cnt++;
}
}
{{ select(3) }}
- O(n)
- O(n log n)
- O(n²)
- O(log n)
4. 将一个整数 x 转换为 k 进制(不断除以 k),时间复杂度是?
{{ select(4) }}
- O(k)
- O(log x)
- O(x)
- O(x log x)
5. 对 m 个整数,每个数最多为 x,对每个数做进制转换,时间复杂度是?
{{ select(5) }}
- O(m)
- O(log x)
- O(m log x)
- O(m²)
6. 将一个长度为 k 的字符串(表示某进制数)转换为十进制,时间复杂度是?
{{ select(6) }}
- O(1)
- O(log k)
- O(k)
- O(k log k)
7. 一个数 x 的 k 进制表示长度为多少?(复杂度角度)
{{ select(7) }}
- O(x)
- O(k)
- O(log x)
- O(x log x)
8. 以下代码的时间复杂度是?
int l = 1, r = 1;
while(l <= n){
if(r <= n) r++;
else l++;
}
{{ select(8) }}
- O(n)
- O(n log n)
- O(n²)
- O(log n)
9. 遍历数组 a[1…n],对每个元素进行一次操作,时间复杂度是?
{{ select(9) }}
- O(1)
- O(log n)
- O(n)
- O(n²)
10. 以下代码的时间复杂度是?
for(int i = 1; i <= n; i++){
for(int j = 1; j <= i; j++){
cnt++;
}
}
{{ select(10) }}
- O(n)
- O(n log n)
- O(n²)
- O(n³)
11. 以下代码的时间复杂度是?
for(int l=1;l<=n;l++){
for(int r=l;r<=n;r++){
sum = 0;
for(int k=l;k<=r;k++){
sum += a[k];
}
}
}
{{ select(11) }}
- O(n²)
- O(n² log n)
- O(n³)
- O(n⁴)
12. 以下代码的时间复杂度是?
for(int i = 1; i <= n; i++){
int cnt = 0;
for(int j = 1; j <= n; j++){
if(a[i] == a[j]) cnt++;
}
}
{{ select(12) }}
- O(n)
- O(n log n)
- O(n²)
- O(n³)
13. 先筛选满足条件的元素(O(n)),再排序(O(n log n)),整体时间复杂度是?
{{ select(13) }}
- O(n)
- O(n log n)
- O(n²)
- O(log n)
14. 使用计数数组统计频率,再计算每个值的组合数(C(cnt,2)),数字个数和数字范围都是 n。时间复杂度是?
{{ select(14) }}
- O(n)
- O(n log n)
- O(n²)
- O(n³)
15. 以下代码的时间复杂度是?
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j *= 2){
cnt++;
}
}
{{ select(15) }}
- O(n)
- O(n log n)
- O(n²)
- O(log n)