时间复杂度

一.时间复杂度

O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n

二.算法时间复杂度分析

(1)O(logn)

for(int i=1,i<=n;i=i*2)        //i按2的幂(1,2,4,8)递增
        count++;                   //循环体执行1+logn次

(2)O(n)

int n=8,count=0;
for(int i=1,i<=n;i++)
        count++;            //循环体执行n次

(3)O(n)

for(int i=1;i<=n;i=i*2)             //执行logn+1次
    for(int j=1;j<=i;j++)          //执行i次
            count++;                 //总共执行2n-1次

(4)O(nlogn)

for(int i=1;i<=n;i=i*2)             //执行logn+1次
    for(int j=1;j<=n;j++)          //执行n次
            count++;            

(5)O(n2)

for(int i=1;i<=n;i++)             
    for(int j=1;j<=n;j++)       
            count++;            //循环体执行n*n次

(6)O(n2)

for(int i=1;i<=n;i++)             //执行n次
    for(int j=1; j<=i; j++)       //执行i次
            count++;      //循环体执行Σ(i=1;n)i=n*(n+1)/2=n2/2+n/2次

 

上一篇:计应193第一组个人流程——康帅


下一篇:素数判断,最大公约最小公倍