单选题
以下算法的时间复杂度为______。
void fun (int n)
int i=1;
while(i<=n)
i=i*2;
A.O(n) B.O(n
2
) C.O(nlog
2
n) D.O(log
2
n)
A
B
C
D
【正确答案】
D
【答案解析】
[解析] 基本运算是i=i*2,设其执行时间为T(n),则2T(n)≤n,即T(n)≤log
2
n=O(log
2
n)。
提交答案
关闭