单选题
1.
设n是描述问题规模的非负整数,下面程序片段的时间复杂度是( )。
void fun(int n){
int i,k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
k=1:
while(k<=n)k=5*k;
}
}
A、
O(n
2
log
2
n)
B、
O(nlog
5
n)
C、
O(n
2
log
5
n)
D、
O(n
3
)
【正确答案】
C
【答案解析】
基本运算语句是k=5*k,设其执行时间为T(n)。
对于j每循环一次,该语句的执行次数为m,有:5
m
≤n,即m≤log
5
n。所以:
提交答案
关闭