- C++
备战CSP-J初赛21天打卡计划。DAY10-算法复杂度分析1
- @ 2024-9-7 9:39:03

for(int i = 1; i <= 100; i++){
sum += i;
}

for(int i = 1; i <= n; i++){
sum += i;
}

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

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

for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
cnt++;
}
}
其实冒泡排序的时间复杂度也是O(n^2),以下代码中,当i=1时,执行n-1次,i=2时,执行n-2次......因此总的执行次数也就是 (n-1)+(n-2)...+2+1就是n*(n-1)/2,显然n^2的量级更大,因此常数项和n/2可以忽略,时间复杂度即为O(n^2):
for(int i =1; i<=n; i++){
for(int j=1; j<=n-i; j++){
if(a[j] > a[j+1])
swap(a[j], a[j+1]);
}
}

📜历年真题
第一题:阅读程序

- 第一空(3分): [ ]
- 第二空(3分):[ ]
- 第三空(2分):[ ]
- 第四空(3分):[ ]
- 第五空(3分):[ ]
第二题:

第三题:

第四题:

第五题:

常见算法的时间复杂度

0 条评论
目前还没有评论...