下面代码段的时间复杂度是()。
i=1;
while( i<=n )
i=i*3;
A. O(n)
B. O(n^2)
C. O(1)
D. O(log3n)
正确答案:D
解析:
假设循环次数是x
i = 1, 3, 9, 27, 81 ,i = 3^x
条件是i <= n 即3^x <= n
所以x <= log3n 一共执行循环体log3n次,所以复杂度是O(log3n)
下面代码段的时间复杂度是()。
i=1;
while( i<=n )
i=i*3;
A. O(n)
B. O(n^2)
C. O(1)
D. O(log3n)
正确答案:D
解析:
假设循环次数是x
i = 1, 3, 9, 27, 81 ,i = 3^x
条件是i <= n 即3^x <= n
所以x <= log3n 一共执行循环体log3n次,所以复杂度是O(log3n)