数据结构中的时间复杂度及count的值,求具体的思路和解题过程

设n为2的乘幂,且n>2,试求算法的时间复杂度及count的值。intTime(intn){count=0;x=2;while(x<n/2){x*=2;count++;}... 设n为2的乘幂,且n>2,试求算法的时间复杂度及count的值。
int Time(int n)
{
count=0;

x=2;
while(x<n/2)

{
x *= 2;
count++;
}
return count

}
展开
 我来答
方鸿晖09
推荐于2017-10-03 · TA获得超过1008个赞
知道小有建树答主
回答量:225
采纳率:66%
帮助的人:110万
展开全部
初值x=2,count=0,循环条件x<n/2,
第1次,循环条件成立,则x=x*2=2^2,count=count++=1
第2次,循环条件成立,则x=x*2=2^3,count=count++=2
。。。。。
第k-1次,循环条件成立,则x=x*2=2^k,count=count++=k-1
第k次,循环条件成立,即x=2^k<n/2,则x=x*2=2^(k+1),count=count++=k
由x=2^k<n/2,所以k<log2(n/2)=log2n-1,所以k=log2n-2.
所以算法的时间复杂度为O(log2n)。count的值为log2n-2
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式