设n是描述问题规模的正整数,下列程序片段的时间复杂度是( )。i=n*n; while(i!=1) i=i/2;
A、
0(log
2
n)
B、
0(n)
C、
0(
D、
0(n
2
)
【正确答案】
A
【答案解析】
解析:考查时间复杂度。将算法中基本运算的执行次数的数量级作为时间复杂度。基本运算是“i=i/2;”,设其执行次数为k,则(n*n)/(2
k
)=1,得k=log
2
n
2
,因此k=log
2
n
2
=2log
2
n,即k的数量级为log
2
n,因此时间复杂度为O(log
2
n)。
提交答案
关闭