• 2021-04-14
    中国大学MOOC:下列三种算法是经常应用的内排序算法:插入排序、选择排序和冒泡排序。阅读下列算法,回答问题。INSERTION-SORT(A)1.fori=2toN2.{key=A[i];3.j=i-1;4.While(j>0andA[j]>key)do5.{A[j+1]=A[j];6.j=j-1;}7.A[j+1]=key;8.}SELECTION-SORT(A)1.fori=1toN-12.{k=i;3.forj=i+1toN4.{ifA[j]ithen6.{7.temp=A[k];8.A[k]=A[i];9.A[i]=temp;10.}11.}BUBBLE-SORT(A)1.fori=1toN-12.{haschange=false;3.forj=1toN-i4.{ifA[j]>A[j+1]then5.{temp=A[j];6.A[j]=A[j+1];7.A[j]=temp;8.haschange=true;9.}10.}11.if(haschange==false)thenbreak;12.}阅读BUBBLE-SORT算法,已知N=20,下列说法正确的是_____。
  • 第5轮次,是将第1个元素至第15个元素之间的元素,相邻者进行比较

    举一反三

    内容

    • 0

      以下程序的运行结果是【1】,其算法是【2】。 main() {inta[5]={5,10,-7,3,7},i,t,j; sort(a); for(i=0;i<=4;i++) printf("%3d",a[i]); } sort(inta[]) {inti,j,k; for(i=0;i<4;i++) for(j=0;j<4-i;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} }

    • 1

      以下程序的运行结果是【1】,其算法是【2】。 main() {int a[5]={9,6,8,3,-1},i,j,t,p; sort(a); for(i=0;i<=4;i++) printf("%3d",a[i]); } sort(int a[]) {int i,j,t,p; for(j=0;j<4;j++) {p=j; for(i=j;i<=4;i++) if(a[i] -1 3 6 8 9  选择法排序

    • 2

      下列代码哪行会出错: 1) public void modify() { 2) int I, j, k; 3) I = 100; 4) while ( I &gt; 0 ) { 5) j = I * 2; 6) System.out.println (” The value of j is ” + j );7) k = k + 1; 8) I–; 9) } 10) } A: 4 B: 6 C: 7 D: 8

    • 3

      4、下列代码( )会出错。1) public void modify() {2) int I, j, k;3) I = 100;4) while ( I >; 0 ) {5)j = I * 2;6) System.out.println (" The value of j is " + j );7) k = k + 1;8) I--;9) }10} A: line 4 B: line 6 C: line 7 D: line 8

    • 4

      产生并输出如下形式的方阵。 1 2 2 2 2 2 1 3 1 2 2 2 1 4 3 3 1 2 1 4 4 3 3 3 1 4 4 4 3 3 1 5 1 4 4 3 1 5 5 5 1 4 1 5 5 5 5 5 1 #include "stdio.h" int main() { int a[7][7],i,j; for(i=0;i<7;i++) for(j=0;j<7;j++) if( (1) || i+j==6) a[i][j]=1; else if ( (2) &&i+j<6) a[i][j]=2; else if (i>j&&i+j<6) a[i][j]=3; else if (i i==j ; j==i  ii  i+j>6; j+i>6; 6