[单选题]

下面是一段Pascal程序: for h:=1 to n-1 do begin x:=A[h+1]; k:=h; while(k>=1)and(A[k]>x)do begin A[k+1]:=A[k]; k:=k-1 end; A[k+1]:=x end; 假设在程序开始执行时,数组A[1…n)是一组随机整数。下列答案中,最好地描述了最差情况下的程序执行时间(运行时间阶数)的是

A.O(n log2n)

B.O(n)

C.O(log2n)

D.O(n2)

参考答案与解析:

相关试题

下面是一段Pascal程序:for h:=1 tO n£­1 dO beginx

[单选题]下面是一段Pascal程序: for h:=1 tO n-1 dO begin x:=A[h+1]; k:=h; while (k>=1) and (A[k]>x) do begin A[k+1):=A[k]; k:=k-1 end; A[k+1]:=x end; 假设在程序开始执行时,数组A[1..n)是一组随机整数。下列答案中,哪一个最好的描述了最差情况下的程序执行时间(运行时间阶数)?( )A.0(nlog2n)B.O(n)C.0(log2n)D.O(n2)

  • 查看答案
  • 执行下面的程序段后,k的值是()。intk=1,n=325;do{k*=n%10

    [单选题]执行下面的程序段后,k的值是()。intk=1,n=325;do{k*=n%10;n/=10;}while(n)A . 3B . 30C . 523D . 325

  • 查看答案
  • 有如下一段程序: SET TALK OFF A=1 B=0 DO WHILE

    [单选题]有如下一段程序: SET TALK OFF A=1 B=0 DO WHILE A<:100 IF.NOT.A/2=INT(A/2)B=B+A ENDIF A=A+1 ENDD0 ? 8 SET TALK ON RETURN 该程序的功能是( )。A. 求1到100之间的累加和B. 求1到100之间的累加和除以2的商C. 求1到100之间的偶数之和D. 求1到100之间的奇数之和

  • 查看答案
  • 下面程序段的运行结果是 a=1 b=1 Do a=a£«1 b=b£«1 Loo

    [单选题]下面程序段的运行结果是a=1b=1D.oa=a + 1b=b + 1Loop Until b > 5Print "k="; a; Spc(4) ; "b="; b + a ( )。A.k=7 b=14B.k=6 b=6C.k=4 b=8D.k=6 b=12

  • 查看答案
  • 下列程序段的执行结果为 m=2 n=3 Do m=m £« n n=n £« 1

    [单选题]下列程序段的执行结果为m=2n=3D.om=m + nn=n + 1Loop While m < 10Print m; nA.1 5B.14 6C.a bD.10 25

  • 查看答案
  • 有以下程序段:int n,t=1,s=0;scanf("%",&n);do{s=

    [单选题]有以下程序段: int n,t=1,s=0; scanf("%",&n); do{ s=s+t; t=t-2;} while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是( )。A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

  • 查看答案
  • 下列程序段的执行结果为 m=2 n=3 Do m=m£«n n=n£«1 Loo

    [单选题]下列程序段的执行结果为m=2n=3D.om=m + nn=n + 1Loop While m < 10Print m; n( )。A.1 5B.14 6C.a bD.10 25

  • 查看答案
  • 下面程序段的运行结果是a=1b=1Do a=a£«1 b=b£«1 Loop U

    [单选题]下面程序段的运行结果是 a=1 b=1 Do a=a+1 b=b+1 Loop Until b>5 Print"k="; a; Spc(4) ; "b="; b + aA.k=7 b=14B.k=6 b=6C.k=4 b=8D.k=6 b=12

  • 查看答案
  • 下列程序段的执行结果为()。n = 0 j = 1Do Until n > 2n

    [单选题]下列程序段的执行结果为()。n = 0 j = 1Do Until n > 2n = n + 1j = j + n * (n + 1)LoopPrint n; jA . 0;1B . 3;7C . 3;21D . 3;13

  • 查看答案
  • 有下列程序段:int n,t=1,s=0;scanf("%d",&n);do{s

    [单选题]有下列程序段: int n,t=1,s=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是( )。A.4,4B.2,2C.4,5D.2,4

  • 查看答案
  • 下面是一段Pascal程序: for h:=1 to n£­1 do begin