郑州大学

设n为正整数。则下面程序段的时间复杂度为()。 k=0; for(i=1;iA.O(1)B.O(n)C.O(nlogn)D.O(n2)

题目
设n为正整数。则下面程序段的时间复杂度为()。 k=0; for(i=1;i<=n;i++){ for(j=i;j<=n;j++) @ k++; }

A.O(1)

B.O(n)

C.O(nlogn)

D.O(n2)

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面程序段的时间复杂性的量级为____________。 for(i=1;i<=n; i++) for(j=1;j<=m; j++){ c[i][j]=0; for(k=1;k<=w;k++) c[i][j]+=a[i][k]*b[k][j] }

A.O(i*j*k)

B.O(n*m*k)

C.O(n*j*k)

D.O(n*m*w)


D 解析:语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。在本题算法中,其中语句“y=y+1;”的频度是n-1,语句“x++;”的频度是(n-1)(2n+1)=2n2-n-1。则该程序段的时间复杂度是T(n)=n-1+2n2-n-1=O(n2)。

第2题:

如下程序段: x=1; for (i=1; i<=n; i++) for (j=1; j<=n; j++) for (k=1; k<=n; k++) x++; 其时间复杂度为 。


A

第3题:

下列程序段的时间复杂度为()。for(i=0;i<m;i++)for(j=0;j<t;j++)e[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]_c[i][j]+a[i][k]×b[k][j];

A.O(m×n×t)
B.O(m+n+t)
C.O(m×t+n)
D.O(m+n×t)

答案:A
解析:
在程序段中,有两段循环程序,第一段是一个双层嵌套循环,另一个是三层嵌套循环,所以基本操作是c[i][j]=c[i][j]+a[i][k]×b[k][j],此基本操作共执行m×t×n次。

第4题:

设n为正整数,求出下列程序段中前置记号@语句的语句频度,以及程序段的时间复杂度. (1) i=1; while(i<=n) @ i=i+1; (2) k=1; for(i=1; i<=n; i++) for(j=1; j<=i; j++) @ k++;


n-1

第5题:

下列程序段的时间复杂度为() k=0; for (i=1; i<=n; i++) for (j=i; j<=n; j++) k++;

A.O(n)

B.O(n^2)

C.O(nlog2 n)

D.O(log2 n)


n

第6题:

下列程序段的时间复杂度是()。 for(i=0; i<m; i++) for(j=0; j<t; j++) c[i][j]=0; for(i=0; i<m; i++) for(j=0; j<t; j++) for(k=0; k<n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j];

A.O(m+n+t)

B.O(m+n*t)

C.O(m*t+n)

D.O(m*n*t)


O(n^2)

第7题:

下面程序段的时间复杂度是_____。 for(i=0;i<n;i++) for(j=0;j<n;j++) A[i][j]=0;


C

第8题:

下面程序段的时间复杂度是__________________。 for(i=0;i<n;i++) for(j=0;j<n;j++) A[i][j]=0;


C

第9题:

设n为正整数。试确定下列各程序段中前置以记号@的语句的频度: for(i=1; i<=n; i++) { for(j=1; j<=i; j++) { for(k=1; k<=j; k++) @ x += delta; }


n-1

第10题:

分析下面代码段中各行的执行次数,并用大O表示算法的时间复杂度。 x=0; y=0; for(k=1; k<=n; k++) x++; for(i=1; i<=n; i++) for(j=1; j<=n; j++) y++;


4