引入
我们结束了时间复杂度的学习,了解了常见的时间复杂度的计算以及不同时间复杂度之间的关系,今天我们看看最坏情况和平均情况,以及空间复杂度。
最坏情况和平均情况
比如有一个数列,我们想找数字 1
- **最好情况:**数列是从1~10排列,找第一个就找到1了,O(1)就搞定。
- **最坏情况:**最坏的就是数列是从10~1排列,找到最后一个 n 才找到10,那复杂度就是O( n )。
- **平均情况:**我们期望运行的时间,比如我希望3分钟搞定。
- **最坏运行时间:**这是一种保证,也就是说,我的算法在最坏情况也,需要多少时间搞定,
通常情况下,我们说的运行时间,都是最坏运行时间。
算法的空间复杂度
在写代码的时候,我们可以用空间换取时间,当然也可以用时间换取空间。
#include <stdio.h>
int main(){
int year;
printf("请输入年份(如2018):\n");
scanf("%d",&year);
if((year%4==0 && year%100!=0 )|| year%400==0){
printf("%d年是闰年!",year);
}else{
printf("%d年不是闰年!",year);
}
}
