问题 单项选择题

设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(n2log2n)
B.O(nlog5n)
C.O(n2log5n)
D.O(n3)

答案

参考答案:C

解析: 基本运算语句是k=5*k,设其执行时间为T(n)。
对于j每循环一次,该语句的执行次数为m,有:5m≤n,即m≤log5n。所以:

单项选择题
单项选择题