更多“下面程序段的时间复杂度是()。for(i=0;in;i++)for(j=1;jm;j++)A[i][j]=0; A、O(n)B、O(m+n+1)C、O(m+n)D、O(m*n)”相关问题
  • 第1题:

    下面程序段的时间复杂度是()。for(j=0;jfor(k=0;ka[j][k]=j*k;

    A、O(m2)

    B、O(n2)

    C、O(m*n)

    D、O(m+n)


    参考答案:B

  • 第2题:

    下列程序段的时间复杂度为()。

    A.O(i+j)

    B.O(n)

    C.O(n2)

    D.O(i*j)


    正确答案:C

  • 第3题:

    以下程序的执行结果是______。 main() { int i,j,m=O,n=0; for (i=0;i<2;i++) {for (j=0;j<2;j++) if(j>=i) m=1;n++; printf("%d\n",n); } }

    A.4

    B.2

    C.1

    D.0


    正确答案:C

  • 第4题:

    下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0;j<=(2*n);j++) X++; }

    A.O(log2n)

    B.O(n)

    C.0(nlog2n)

    D.O(n2)


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

  • 第5题:

    分析下列程序,其最终执行结果是______。 main() { int n[3],i,j,k; for(i=0;i<3;i++)n[i]=O; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1; printf("%d\n",n[0]); }

    A.-2

    B.-1

    C.0

    D.-3


    正确答案:D
    解析:当i为0,内循环在j为0时,执行n[j]=n[i]-1;,即n[0]=n[0]-1, n[0]值变为-1:在j为1时,执行n[j]=n[i]-1;,即n[1]=n[0]-1,将-2赋给n[1]。当i为1时,内循环在j为0时,执行n[j]=n[i]-1;,即n[0]=n[1]-1,n[0]值变为-3;在j为1时,执行n[j]=n[i]-1;,即n[1]=n[1]-1,将-3赋给n[1];最后n[0]和n[1]的值均为-3。

  • 第6题:

    下列程序的时间复杂度为( )。 for (i=l;i<2n;i++) { y++; for(j=0;j<a3n;j++) x++; }

    A.0(n-1)

    B.O(2n)

    C.0(n2)

    D.O(log2n)


    正确答案:C
    解析:一个算法中所有语句重复执行的次数之和构成了该算法的运算时间。题中语句y++执行了2n-1次,语句x++执行了(2n-1)(3n+1)=6n2-n-1次,则该算法的时间复杂度T(n)=6n2-n-1=O(n2),

  • 第7题:

    下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0;3<-(2*n);j++) x++; }

    A.O(log2n)

    B.O(n)

    C.O(nlog2n)

    D.O(n2)


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

  • 第8题:

    下面的程序段的时间复杂度为【】

    s=0;

    for(i=0;i<n;i++)

    for(j=0;j<m;j++)

    s=s+a[i][i];

    A.O(1)

    B.O(m+n)

    C.O(log2mn)

    D.O(m*n)


    正确答案:C
    [解析]一个算法在计算机运行时所耗费的时间用时间复杂度来度量.算法的时间复杂度是算法输入规模或问题规模的函数,一般不必算出精确值,更关心的是相应的数量级.算法的时间复杂度与算法中语句的执行次数有直接关系,而语句的执行次数又取决于问题规模n的大小.实际上求解时间复杂度的方法是算出算法中执行频度最大的那条语句的频度,取其数量级放入 O( )中.

  • 第9题:

    下面程序的时间复杂度为()。 for(i=0;i

    • A、O(m2
    • B、O(n2
    • C、O(m×n)
    • D、O(m+n)

    正确答案:C

  • 第10题:

    下面程序的时间复杂度为()。 for(i=0;i

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

    正确答案:A

  • 第11题:

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


    正确答案:O(n2

  • 第12题:

    单选题
    有以下程序: #include  main() {  char a[4][4]={' '};  int i,j;  for(i=0;i<4;i++)  {   a[i][0]=a[i][3]='#';   for(j=1;j<3;j++)   {    a[0][j]=a[3][j]='#';    if((i!=0)&&(i!=3))a[i][j]='o';   }  }  for(i=1;i<3;i++)  {   for(j=0;j<4;j++)    printf("%2c",a[i][j]);   printf("");  } } 程序的运行结果是(  )。
    A

    # o o #<换行> # o o #

    B

    # # # #<换行> # o o #

    C

    # o o #<换行> # # # #

    D

    # # # #<换行> # # # #


    正确答案: A
    解析:
    程序的执行过程为:定义4行4列二维数组字符a并且初始化为a[0][0]=' ',其他元素均为0。执行for循环将数组第一列和第四列赋值为'#'。执行for循环将数组第一行和第四行的第二个到第三个元素赋值为'#',然后将剩余元素全部赋值为'o'。此时矩阵为{{#,#,#,#}, {#,o,o,#}, {#,o,o,#}, {#,#,#,#}}。之后输出矩阵第二行与第三行元素,答案选择A选项。

  • 第13题:

    下面程序段的时间复杂度是()。s=0;for(i=0;ifor(j=0;js+=B[i][j];sum=s;

    A、O(m2)

    B、O(n2)

    C、O(m*n)

    D、O(m+n)


    参考答案:B

  • 第14题:

    下列程序段的时间复杂度为()。

    A.O(i*j)

    B.O(i+j+k)

    C.O(n3)

    D.O(n2)


    正确答案:C

  • 第15题:

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

    A.O(m2)

    B.O(n2)

    C.O(m*n)

    D.O(m+n)


    正确答案:C
    解析:此程序的时间复杂度即为程序中循环次数的时间耗费。由程序为嵌套循环,外层循环的时间复杂度T(n1)=m,内层循环的时间复杂度T(n2)=n,则此程序的时间复杂度T(n)=m*n,即为0(m*n)。

  • 第16题:

    有以下程序:include using namespace std;int main ( ){ int n[3],i,j,k = 2; for(i

    有以下程序: #include <iostream> using namespace std; int main ( ) { int n[3],i,j,k = 2; for(i = 0;i<k;i++) n[i] = O; for(i = O;i<k;i++) { for(j = O;j<k;j++) n[j] = n[i] + 1; } cout<<n [0 ] <<end1; return 0; } 上述程序运行后,输出结果是( )。

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:本题考核数组的定义、初始化及其使用。根据程序逐步分析:程序首先给数组n的所有元素赋初值0,然后执行一个嵌套的循环结构。嵌套循环的执行过程如下:①i=0时,j分别取值0、1,使得n[0]、n[1]的值分别变1、2,内层循环结束。②i=1时,对外层循环进行判断,符合循环条件,执行内层循环,j分别取值0、1,使得n[0]、n[1]的值变为3、3,退出内层循环。③i=2时,判断外层循环,不再符合循环条件,退出外层循环,执行cout语句,输出n[0]的值为3。

  • 第17题:

    下面程序段的时间复杂度是(9)。for(i=0,k=0;<n;1++){ k+=A[i][j]; for(j=1;j<m;j++) A[i][j]=1}

    A.O(n)

    B.O(m+n+1)

    C.O(m+n)

    D.O(m*n)


    正确答案:D
    解析:时间复杂度是解决问题的时间和问题的规模之间的关系,即解决问题所耗费的时间随问题规模增长成怎样的增长对应关系。本题中最内部的循环的执行次数为m*n,所以整段程序的复杂度为O(m*n)。

  • 第18题:

    下面这个程序段的时间复杂度是( )。 for {i=1; i<n; i++) { y=y+1; for (j=0;i<=(2*n);i++) x++; }

    A.O(log2n)

    B.O(n)

    C.O(nlog2n)

    D.O(n2)


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

  • 第19题:

    下面这个程序段的时间复杂度是( )。 for (i=1;i<n;i++) { y=y+1; for (j=0;j<=(2*n);j++) x++; }

    A.O(log2n)

    B.O(n)

    C.O(nlog2n)

    D.O(n2)


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

  • 第20题:

    下列程序段的时间复杂度为()。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次。

  • 第21题:

    设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1;i<=n;i++) for(j=i;j<=n;j++) x++;

    • A、O(1)
    • B、O(2n2
    • C、O(n)
    • D、O(3n3

    正确答案:B

  • 第22题:

    设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。for(i=n-1;i>=0;i--)for(j=0;j

    • A、n2
    • B、O(nlgn)
    • C、O(n)
    • D、O(n2)

    正确答案:D

  • 第23题:

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

    正确答案: O(n2
    解析: 暂无解析