1.时间复杂度为o(1)
语句只执行啦一次
2. 某算法的时间复杂度为O(n2),表明该算法的( )。
A.问题规模是n2
B.执行时间等于n2
C.执行时间与n2成正比
D.问题规模与n2成正比
选C 时间复杂度为O(n2),说明算法的执行时间T(n)<=c * n2(c为常数),即T(n)=O(n2)。
3.
3i=1; k=0; while (ik=n-1){
i++
k+=10*i;
解:时间复杂度是0(n);
k+=10*i的频度准确值为n-1。
4. 分析以下程序的时间复杂度()
void fun(int n)
{
int i = l;
while (i <= n)
i = i * 2;
}
A.O(n)
B.O(n ^ 2)
C.O(nlogn)
D.O(logn)
选D 此函数有一个循环,但是循环没有被执行n次,i每次都是2倍进行递增,所以循环只会被执行log2(n)次
5.k=0;
for(i=1; i<=n; i++){
for(j=i; j<=n; j++)
k++;
}
解:n+(n-1)+(n-2)+.....+3+2+1=n(n+1)/2,时间复杂度为O(n^2)