假设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 nj=1 n m=m∑ i=1 nj=1 n =mn 2 = n 2 log 5 n=O(n 2 log 5 n)