单选题
设n是描述问题规模的正整数,下面程序片段的时间复杂度是______。
i=2;
while(i<n/3)
i=i*3;
A.O(log
2
n)
B.O(n)
C.
A
B
C
D
【正确答案】
A
【答案解析】
[解析] 考查时间复杂度。在程序中,执行频率最高的语句为“i=i*3”。设该基本语句一共执行了k次,根据循环结束条件,有n>2*3
k
≥n/3,由此可得算法的时间复杂度为O(log
3
n)=O(lgn)=O(log
2
n)。
注:题中k=log
3
n,又因log
3
n=lgn/lg3,即k的数量级为lgn,由此可知,在时间复杂度为对数级别的时候,底数数字的改变对于整个时间复杂度没有影响,也可一律忽略底数写为O(log
2
n)。
提交答案
关闭