C语言,下面程序段的时间复杂度是多少

C语言,下面程序段的时间复杂度是多少,第1张

是O(log3(n))。

分析:

第1次循环进入后i=3(3^1),

第2次循环进入后i=9(3^2),

假设第k次循环是最后一次循环,则进入后i=3^k,同时有3^k等于n,所以k=log3(n),时间复杂度为O(log3(n))(即以3为底,n的对数)。

首先要明白队列是 先进先出

InQueue(Q,'H');

InQueue(Q,'R');

InQueue(Q,y); //现在队列内容从前到后依次是HRC

OutQueue(Q,x);InQueue(Q,x); //,H 出队列,并且把H赋于x,然后x='H' 入队列,现在队列内容从前到后依次是RCH

OutQueue(Q,x);InQueue(Q,'A'); //,R 出队列,并且把H赋于x,注意现在x=‘R’,因为最后输出的x,就是R;然后 'A' 入队列,现在队列内容从前到后依次是CHA

while(!QEmpty(Q))

{OutQueue(Q,y);

printf(y);

}//这个循环依次输出CHA

printf(x);//输出R

{printf("%3d",x-=2);}

这个就是x=x-2,也就是说x变成1了再输出,输出1

--x就是x=x-1的简便写法,这时候x变成0,!0就是1,所以继续做do这个循环

第二次x再减去2变成-2,所以输出-2

--x再减去1变成-3,!-3为0所以循环做到这就停止了

最后输出

1

-2

以上就是关于C语言,下面程序段的时间复杂度是多少全部的内容,包括:C语言,下面程序段的时间复杂度是多少、数据结构C语言:写出些列程序段的输出结果。、c语言的问题,程序段如下 int x=3 do{printf("%3d",x-=2);} while(!(--x))等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9456283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存