itgle.com

下面是一段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 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)


相似考题
参考答案和解析
正确答案:D
更多“下面是一段Pascal程序: for h:=1 to n-1 do begin x:=A[h+1]; k:=h; while(k>=1)and ”相关问题
  • 第1题:

    下面能正确计算1*2*3*•••*10的程序段是()

    A.do{ k=1;n=1;n=n*k;k++; }while(k<=10);

    B.do{ k=1;n=0;n=n*k;k++; }while(k<=10);

    C.k=1;n=1; do{ n=n*k;k++; }while(k<=10);

    D.k=1;n=0; do{ n=n*k;k++; }while(k<=10);


    If x >= 2 Then y = 3 ElseIf x >= 1 Then y = 2 ElseIf x >=0 Then y = 1 Else y = 0 End If

  • 第2题:

    1、以下能够实现计算5!的程序段是()

    A.int fac=1,k=0; do{ k++; fac*=k;} while(k<5);‍

    B.int fac=0,k=1; do{ fac*=k; k++;} while(k<5);

    C.int fac=1,k=1; do{ k++; fac*=k;} while(k<=5);

    D.int fac=1,k=0; do{ fac*=k; k++;} while(k<5);


    int fac=1,k=0; do{ k++; fac*=k;} while(k<5); ‍

  • 第3题:

    8、下面程序的输出结果是 。 #include<stdio.h> int main() { int k=1,s=0; do { if((k%2)!=0)continue; s+=k;k++; }while(k>10); printf("%d",s); return 0; }


    10

  • 第4题:

    下面的程序运行时,若输入253,则输出 。 #include <stdio.h> long fun (long data) { long k =1; do { k*=data%10 ; data/=10 ; } while(data) ; return (k); } void main() { long x; printf("nPlease enter a number:"); scanf("%ld",&x); printf("n%ldn",fun(x)); }


    B

  • 第5题:

    【填空题】当运行以下程序时,从键盘输入1 2 3 4 5 -1<CR>,则下面程序的运行结果是 。 #include<stdio.h> main() {int k=0,n; do{scanf("%d",&n);k+=n;}while(n!=-1); printf("k=%d n=%dn",k,n); }


    C