单选题 以下算法的时间复杂度为______。
void fun (int n)
int i=1;
while(i<=n)
i=i*2;

A.O(n) B.O(n2) C.O(nlog2n) D.O(log2n)

【正确答案】 D
【答案解析】[解析] 基本运算是i=i*2,设其执行时间为T(n),则2T(n)≤n,即T(n)≤log2n=O(log2n)。