更多“下面程序段的时间复杂度是()。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)”相关问题
  • 第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题:

    设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)


    参考答案:D

  • 第5题:

    下面这个程序段的时间复杂度是( )。 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)。

  • 第6题:

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

  • 第7题:

    算法的主要运算如下: While i<n do { s=0; While s<n do { s=s+1; } i=i+1; } 其中i的初值为0,s初值为0,“=”为赋值号。该算法的时间复杂度为()

    A.O(2n)

    B.O(n+log2n)

    C.O(nlog2n)

    D.O(n2)


    正确答案:D
    解析:程序中有两个嵌套的n循环,故时间复杂度为O(n2)。

  • 第8题:

    下面这个程序段的时间复杂度是( )。 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)。

  • 第9题:

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

    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( )中.

  • 第10题:

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

  • 第11题:

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

  • 第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题:

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

    A.O(2n)

    B.O(n)

    C.O(n2)

    D.O(i*j)


    正确答案:C

  • 第14题:

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

    A.O(i*j)

    B.O(i+j+k)

    C.O(n3)

    D.O(n2)


    正确答案:C

  • 第15题:

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

    A.O(1)

    B.O(n

    C.O(nlogn)

    D.O(n2)


    参考答案:B

  • 第16题:

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

  • 第17题:

    算法的主运算如下,其中i的初值为1,s的初值为0,“←”为赋值号。 while i<n do { for j←1 to n do s←s+a[i,j] i←i*2; 则该算法的时间复杂度为 ( )

    A.O(2n)

    B.O(n+log2n)

    C.O(nlog2n)

    D.O(n2)


    正确答案:C

  • 第18题:

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

  • 第19题:

    下面这个程序段的时间复杂度是( )。 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)。

  • 第20题:

    下面这个程序段的时间复杂度是( )。 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)。

  • 第21题:

    假设执行语句S的时间为0(1),则执行下列程序段的时间为( )。
    for(i=l; k=n; it+)
    for(j=l;j<=n; j++)
    S;

    A.0(n)
    B.0(n^2)
    C.O(n×i)
    D.0(n+1)

    答案:B
    解析:
    观察可知,程序段S的执行频度为T(n)=n^2,得时间复杂度T(n)=O(n^2)。

  • 第22题:

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

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

    正确答案:C

  • 第23题:

    设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