【时间复杂度练习题与解析】

本文通过一系列程序实例分析了不同时间复杂度,包括O(log2n), O(n^0.5), O(n)。首先,解释了一个二倍增长的循环的时间复杂度为O(log2n);接着,讨论了一个累加求和循环的时间复杂度约为O(n^0.5);随后,展示了简单的线性增长循环的时间复杂度为O(n);最后,针对2的幂次问题,再次确认了O(log2n)的时间复杂度。" 93145512,8178524,使用Python爬取股票数据,"['Python编程', '网络爬虫', '数据分析', '金融数据']
摘要由CSDN通过智能技术生成

1、设n为如下程序段处理的数据个数,求时间复杂度

for(i=l;<n;i=2*i)

std::cout<<“i=”<<std::end1;

分析:

主看for循环,当>=n时结 束,假设执行m次结束,i1=2= 21 ,i2 =2*2 = 22,..,im二2m,则有2m=n,大致口算m=1og2n, 则时间复杂度为O( log2n )

2、分析以下时间复杂度

void fun(int n)
{
    int i=0,s=0;
    while(s<n)
    {
        ++i;
        s=s+i;
    }
}
分析:

n为规模,基本操作语句是++i和s=s+i,while循环处当s>=n不符合条件停止,假设执行m次结束,i=1,2,3..依次渐加,i只影响s值,主要看s, s1 =1, s2 =1+2=3, s3 =1+2+3=6,... sm =1+2+3+...+m=m(m+1)/2 ,正解答案中给出,m(m+1)/2+k=n (k起修正作用的常数),也可大致口算m≈ n−−√ ,则时间复杂度为O( n−−√ )

3、分析以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值