假设n是描述问题规模的非负整数,下面程序片段的时间复杂度为( )。void fun{int n) { int i,j,k; for (i;l; i<=n; i++) while (k<—n)
【正确答案】
C
【答案解析】解析:首先抓基本运算语句,即k=5*k;设其执行时间为T(n)。对于j每循环一次,该语句的执行次数为m,有5
m
≤n,即m≤109sn。所以, T(n)=∑
i=1
n
∑
j=1
n
m=m∑
i=1
n
∑
j=1
n
=mn
2
= n
2
log
5
n=O(n
2
log
5
n)