首页 > 代码库 > 绪论算法复杂度

绪论算法复杂度

常见级数算法复杂度:

1,算数级数:与末项平方同阶

T(n)=1+2+3+...=n(n+1)/2=O(n2)

2,幂方级数:比幂次高出一阶

T2(n)=12+22+32+...n2=n(n+1)(2n+1)/6=O(n3)

T3(n)=13+23+33+...n3=n2(n+1)2/4=O(n4)

T4(n)=14+24+34+...n4=n(n+1)(2n+1)(3n2+3n-1)/30=O(n5)

3, 几何级数(a>1):与末项同阶

Ta(n)=a0+a1+a2+...an=(an+1-1)/(a-1)=O(an)

4,收敛级数

1/1/2+1/2/3+1/3/4+...1/(n-1)/n=1-1/n=O(1)

1+1/22+...1/n2<1+1/22+...=∏2/6=O(1)

 

常见循环复杂度

 

for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
        01operation(i,j)
算数级数:
i=0n-1=n+n...+n=n*n=O(n2)
for(int i=0;i<n;i++)
    for(int j=0;j<i;j++)
        01operate(i,j);
算数级数:
i=0n-1=0+1+2+...n=n(n-1)/2=O(n2)
for(int i=1;i<n;i<<=1)
    for(int j=0;j<i;j++)
        01operate(i,j);
几何级数:
1+2+4+...+2^log2(n-1)=....=O(n)

 

绪论算法复杂度