下面程序段的时间复杂度是() i=1; while(i<=n) i=i*3;
第1题:
第2题:
下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+3; for (j=0;j<=(2*n);j++) x++; }
A.O(log2n)
B.O(n)
C.O(nlog2n)
D.O(n2)
第3题:
A. O (m2)
B. O (n2)
C. O (m*n)
D. O (m+n)
第4题:
第5题:
下列程序段的时间复杂度为()。i=0,s=0;while(sn){s=s+i;i++;}
A、O(n1/2)
B、O(n1/3)
C、O(n)
D、O(n2)
第6题:
阅读分析本题程序段后回答问题:
(1)程序实现了什么功能?(3分)
(2)写出程序的输出结果;(4分)
(3)写出算法的时间复杂度。(3分)
#include "stdio.h"
#define N 7
typedef int datatype;
void main(void)
{ int 1,j,t;
datatype data[N]={1,2,3, 4,5,6, 7}; /*处理的数据
*/
i=0;
j=N-1;
while (i<j)
{ t=data[i];
data[i++ ]=data[j];
data[j--]=t;
}
printf(”运行结果为: \n");
for(i= =0;i<N-1;i++)
printf("%d; ",data[i]);
}
答案:
(1)实现的功能:将数组里的数组逆序输出
(2)7;6;5;4;3;2
(3)时间复杂度为n
解析:
因为i<N-1,所以最后输出的结果中不会有1
第7题:
程序段s=i=0;do{i=i+1;s=s+i;}while(i=n);的时间复杂度为()。
A、O(n)
B、O(nlog2n)
C、O(n)
D、O(n/2)
第8题:
A、O(n)
B、O(m+n+1)
C、O(m+n)
D、O(m*n)
第9题:
A、O(m2)
B、O(n2)
C、O(m*n)
D、O(m+n)
第10题:
下列程序段的时间复杂度为()。
A.O(i+j)
B.O(n)
C.O(n2)
D.O(i*j)