参考答案和解析
参考答案:A
更多“下列程序段的时间复杂度为()。i=0,s=0;while(sn){s=s+i;i++;}A、O(n1/2)B、O(n1/3)C、O(n)D、O(n2)”相关问题
  • 第1题:

    程序段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)


    参考答案:A

  • 第2题:

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

  • 第3题:

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

    A.O(i+j)

    B.O(n)

    C.O(n2)

    D.O(i*j)


    正确答案:C

  • 第4题:

    设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

  • 第5题:

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

  • 第6题:

    算法的主运算如下,其中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

  • 第7题:

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

  • 第8题:

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

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

    下面程序段的时间复杂度为()。 i=1; while(i<=n)i=i*3;

    • A、O(n)
    • B、O(3n)
    • C、O(log3n)
    • D、O(n3

    正确答案:C

  • 第11题:

    设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

  • 第12题:

    单选题
    有以下程序:#includemain(){ char *s=120119110; int n0,n1,n2,nn,i; n0=n1=n2=nn=i=0; do {  switch(s[i++])  {   default:nn++;   case '0':n0++;   case '1':n1++;   case '2':n2++;  } }while(s[i]); printf(n0=%d,n1=%d,n2=%d,nn=%d,n0,n1,n2,nn);}程序的运行结果是(  )。
    A

    n0=3,n1=8,n2=9,nn=1

    B

    n0=2,n1=5,n2=1,nn=1

    C

    n0=2,n1=7,n2=10,nn=1

    D

    n0=4,n1=8,n2=9,nn=1


    正确答案: C
    解析:
    本题执行过程为:s[0]='1',匹配case'1',n1=1,n2=1;s[1]='2',匹配case'2',n2=2;s[2]='0',匹配case'0',n0=1,n1=2,n2=3;s[3]='1',匹配case'1',n1=3,n2=4;s[4]='1',匹配case'1',n1=4,n2=5;s[5]='9',匹配default,nn=1,n0=2,n1=5,n2=6;s[6]='1',匹配case'1',n1=6,n2=7;s[7]='1',匹配case'1',n1=7,n2=8;s[8]='0',匹配ease'0',n0=3,n1=8,n2=9;s[9]='\0',退出循环。输出n0,n1,n2,nn为3,8,9,1,答案选择A选项。

  • 第13题:

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

  • 第14题:

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

    A.O(2n)

    B.O(n)

    C.O(n2)

    D.O(i*j)


    正确答案:C

  • 第15题:

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

    A.O(i*j)

    B.O(i+j+k)

    C.O(n3)

    D.O(n2)


    正确答案:C

  • 第16题:

    设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

  • 第17题:

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

  • 第18题:

    有下列程序: include void fun(int * s,int n1,int n2) { int i,j,

    有下列程序: #include <stdio.h> void fun(int * s,int n1,int n2) { int i,j,t; i=n1;j=n2; while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。

    A.987654321

    B.4321098765

    C.5678901234

    D.987651234


    正确答案:C
    解析:从题目的主函数入手,定义了一个一维数组并赋韧值,接着调用函数fun(),fun()函数的功能为使数组中的元素逆序,当调用 fun(a,0,3),将实参传递给形参实现数组a中a[0]-a[3]这4个元素逆序;同理调用fun(a,4,9)是将上步排列好的a数组中a[4]-a[9]这6个元素逆序;调用fun(a,0,9)是将数组中a[0]-a[9]这10个元素在逆序,再用printf()函数输出结果为5678901234,故选项C)正确。

  • 第19题:

    算法的主要运算如下: 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)。

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

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

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

    正确答案:C

  • 第22题:

    设有程序段 i=1; while (i<=n) i=i*2; 上面程序段的时间复杂度为()。  

    • A、O(n)
    • B、O(log n)
    • C、O( nlog n)
    • D、O(n2)

    正确答案:B

  • 第23题:

    若变量已正确定义,以下不能正确计算1+2+3+4+5的程序段是()。

    • A、i=1;s=1;do{s=s+i;i++;}while(i<5);
    • B、i=0;s=0;do{i++;s=s+i;}while(i<5);
    • C、i=1;s=0;do{s=s+i;i++;}while(i<6);
    • D、i=1;s=0;do{s=s+i;i++;}while(i<=5);

    正确答案:B