C.选择排序:procedure sort;var i,j,k:integer;

题目

C.选择排序:

procedure sort;

var i,j,k:integer;


相似考题
更多“C.选择排序:procedure sort;var i,j,k:integer; ”相关问题
  • 第1题:

    四、排序算法

    A.快速排序:

    procedure qsort(l,r:integer);

    var i,j,mid:integer;


    正确答案:

     

    begin
    i:=l;j:=r; mid:=a[(l+r) div 2]; {将当前序列在中间位置的数定义为中间数}
    repeat
    while a[i]<mid do inc(i); {在左半部分寻找比中间数大的数}
    while a[j]>mid do dec(j);{在右半部分寻找比中间数小的数}
    if i<=j then begin {若找到一组与排序目标不一致的数对则交换它们}
    swap(a[i],a[j]);
    inc(i);dec(j); {继续找}
    end;
    until i>j;
    if l<j then qsort(l,j); {若未到两个数的边界,则递归搜索左右区间}
    if i<r then qsort(i,r);
    end;{sort}

  • 第2题:

    D. 冒泡排序

    procedure bubble_sort;

    var i,j,k:integer;


    正确答案:

     

    begin
    for i:=1 to n-1 do
    for j:=n downto i+1 do
    if a[j]<a[j-1] then swap( a[j],a[j-1]); {每次比较相邻元素的关系}
    end;

  • 第3题:

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


    6

  • 第4题:

    B.插入排序:

    思路:当前a[1]..a[i-1]已排好序了,现要插入a[i]使a[1]..a[i]有序。

    procedure insert_sort;

    var i,j:integer;


    正确答案:

     

    begin
    for i:=2 to n do begin
    a[0]:=a[i];
    j:=i-1;
    while a[0]<a[j] do begin
    a[j+1]:=a[j];
    j:=j-1;
    end;
    a[j+1]:=a[0];
    end;
    end;{inset_sort}

  • 第5题:

    下面程序的功能是 : 将 N 行 N 列二维数组中每一行的元素进行排序 , 第 0 行从小到大排序 , 第 1 行从大到小排序,第 2 行从小到大排序,第 3 行从大到小排序,例如:

    define N 4

    void sort(int a[][N])

    { int i, j, k, t;

    for (i=0; i<N;i++)

    for (j=0; j<N-1:j++)

    for (k= 【 13 】 ; k<N;K++)

    /* 判断行下标是否为偶数来确定按升序或降序来排序 */

    if ( 【 14 】 ? a[i][j]<a[i][k]); a[i][j]>a[i][k])

    { t = a[i][j];

    a[i][j]=a[i][k];

    a[i][k] = t;

    }

    }

    void outarr(int a[N][N])

    { …… }

    main()

    { int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};

    outarr(aa); /* 以矩阵的形式输出二维数组 */

    sort(aa);

    outarr(aa);

    }


    正确答案:
    答案j+1;i%2或i%2==1解析:k表示i行中从第j个元素之后的元素的列小标;判断第i行是否是偶数