• C++
  • 备战CSP-J初赛21天打卡计划。DAY10-算法复杂度分析1

  • @ 2024-9-7 9:39:03

image image

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

image

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

image

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

image image

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

image

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]);
    }
}

image

📜历年真题

第一题:阅读程序 image image image

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

第二题: image

第三题: image

第四题: image

第五题: image

常见算法的时间复杂度

image image image image image

0 条评论

目前还没有评论...