1、复杂度分析的主要方法
1)迭代:技术求和
2)递归: 递归跟踪+递推方程
3)猜测+验证
2、常见复杂度
1)算数级数: 与末项平方同阶
T(n) = 1+2+3+……+n = n(n+1)/2 = ο(n2)
2)幂方级数 : 比幂次高出一阶
T2(n) = 12 + 22 + 32 + …… +n2 = n(n+1)(2n+1)/6 = Ο(n3)
T3(n) = 13 + 23 + 33 +…… + n3 = n2(n+1)2/4 = Ο(n4)
T4(n) = 14 + 24 + 34 + …… + n4 = n(n+1)(2n+1)(3n2+3n-1)/30 = Ο(n5)
3)几何级数( a>1 ):与末项同阶
Ta(n) = a0+a1+a2+……+an = (an+1-1)/(a-1) = Ο(an)
例如: 1+2+4+8+……+2n = 2n+1-1=Ο(2n+1)=Ο(2n)
4)收敛级数
1/1/2+1/2/3+1/3/4+……+1/(n-1)/n=1-1/n=Ο(1)
1+1/22+……+1/n2 = ∏2/6 = Ο(1)
1/3+1/7+1/8+1/15+1/24+1/26+1/31+1/35+…… = 1 = Ο(1)
5)可能未必收敛,但是长度有限
h(n)=1+1/2+1/3+1/4+……+1/n = Θ(logn) //调和级数
log1+log2+log3+……+logn = log(n!) = Θ(nlogn) //对数级数