时间复杂度

本文详细探讨了算法的时间复杂度,从O(1)到O(n!)的复杂度级别,并通过实例分析了常见算法的时间复杂度,包括对数时间复杂度、线性时间复杂度、二次时间复杂度等,帮助读者理解不同算法的效率差异。

一.时间复杂度

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

O(m+n),O(m*n)

二.算法时间复杂度分析

(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次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值