早教吧作业答案频道 -->数学-->
怎么求算法的时间复杂性的上界和下界?如题估算下列程序段所代表的算法的时间复杂性的上界和下界:(1)for(i=1;i1){if(n%2)n=n-1;elsen=n/2;
题目详情
怎么求算法的时间复杂性的上界和下界?
如题
估算下列程序段所代表的算法的时间复杂性的上界和下界:
(1)for(i=1;i1){if(n%2) n=n-1;else n=n/2;
如题
估算下列程序段所代表的算法的时间复杂性的上界和下界:
(1)for(i=1;i1){if(n%2) n=n-1;else n=n/2;
▼优质解答
答案和解析
简单一点,忽略诸如程序在循环变量上的开销,只考虑循环体
复杂度是通过数运算次数直接数出来的,要知道循环多少次,以及每次循环的工作量
(1)循环n次,每次两步加法两步赋值,简单一点讲就是每次循环工作量都是常数,所以复杂度就是Θ(n)(既是上界也是下界)
对于(2)而言,n=n-1下降比较慢,n=n/2下降比较快,同样每次循环的工作量都是常数,只要看循环次数,所以从前者去统计上界,从后者统计下界
最少的情况来自n=2^k的形式,要循环k步,复杂度下界是Ω(log n)
循环次数比较多的情况是反复出现n=n-1运算的情况,但注意一旦执行该运算之后n一定变成偶数,所以最坏情况是n=n-1和n=n/2交替出现,此时循环次数不超过2log_2 n,复杂度上界是O(log n)
合并起来总体的复杂度还是Θ(n)
复杂度是通过数运算次数直接数出来的,要知道循环多少次,以及每次循环的工作量
(1)循环n次,每次两步加法两步赋值,简单一点讲就是每次循环工作量都是常数,所以复杂度就是Θ(n)(既是上界也是下界)
对于(2)而言,n=n-1下降比较慢,n=n/2下降比较快,同样每次循环的工作量都是常数,只要看循环次数,所以从前者去统计上界,从后者统计下界
最少的情况来自n=2^k的形式,要循环k步,复杂度下界是Ω(log n)
循环次数比较多的情况是反复出现n=n-1运算的情况,但注意一旦执行该运算之后n一定变成偶数,所以最坏情况是n=n-1和n=n/2交替出现,此时循环次数不超过2log_2 n,复杂度上界是O(log n)
合并起来总体的复杂度还是Θ(n)
看了 怎么求算法的时间复杂性的上界...的网友还看了以下:
一道求解数列极限的难题设a>0,X1>0,Xn+1=1/2(Xn+a/Xn),(n=1,2,3.) 2020-05-21 …
求极限lim(n→∞)n^2*Σ(上n,下i=1)1/(n+i)^3 2020-06-12 …
设函数fn(x)(n=1,2,…)在[0,1]上连续,在(0,1)内可导,并且{fn(x)}在[0 2020-06-23 …
设f(N)、g(N)是定义在正数集上的正函数.如果存在正的常数C和自然数N0,使得当N≥N0时有f 2020-07-31 …
给一个自然数n他的因子和最大可能是多少?如30的因子和为72一楼没明白我的意思,n的因子和一定不会 2020-07-31 …
几道高数题,1.求lim(n→∞)sin^2(∏√(n^2+n))2.设f(x)在[a,+∞)上连 2020-07-31 …
已知点A(1,1)B(2,3)C(3,2)点p(x,y)在△ABC三边围成的区域(含边界)上1)若 2020-07-31 …
某物理兴趣小组利用如图装置探究电磁感应实验,实验情况记录在下面表格中:实验序号磁极位置开关导体运动情 2021-01-22 …
某物理兴趣小组利用图所示的实验装置探究电磁感应现象,得到如下实验记录表格:实验序号磁极位置开关情况导 2021-01-22 …
某物理兴趣小组利用如图装置探究电磁感应实验,实验情况记录在下面表格中:实验序号磁极位置开关导体运动情 2021-01-22 …