①最坏时间复杂度:指在最坏情况下,算法的时间复杂度。
②最好时间复杂度:指在最好的情况下,算法的时间复杂度。
③平均时间复杂度:指的是所有可能的输入在等概率出现的情况下,算法的时间复杂度。
分析时间复杂度的两条规则:
①加法规则: T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))
②乘法规则:T(n)=T1(n) x T2(n)=O(f(n)) x O(g(n))=O(f(n) x g(n))
常见的渐近时间复杂度:
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
常见的时间复杂度分析:
1)循环:时间复杂度为其循环次数为O(n)
//循环执行n次
for(i=1;i<=n;i++){
a=a+1;
}
2)递归:例如求阶乘的算法,每次递归调用fact()后参数减一,一共执行n次调用,时间复杂度为O(n)
int fact(int n){
if (n<=1) return 1;
return n*fact(n-1);
}
3)嵌套循环&#