编辑代码

#include <stdio.h>
int a[100],z[100];
void gb(int l,int r){
    if(l>=r){
        return;
    }
    int mid=l+(r-l)/2;
    gb(l,mid);
    gb(mid+1,r);
    int i=l,j=mid+1,k=0;
    while(i<=mid&&j<=r){
        if(a[i]<=a[j]){
            z[k++]=a[i++];
        }
        else{
            z[k++]=a[j++];
        }
    }
    while(i<=mid){
        z[k++]=a[i++];
    }
    while(j<=r){
        z[k++]=a[j++];
    }
    for(int o=l,p=0;o<=r;o++,p++){
        a[o]=z[p];
    }
}
int main () {
    int n=6;
    printf("%d\n",n);
    a[0]=2,a[1]=5,a[2]=4,a[3]=8,a[4]=3,a[5]=1;
    for(int i=0;i<n;i++){
        printf("%d ",a[i]);
    }
    printf("\n");
    gb(0,5);
    for(int i=0;i<n;i++){
        printf("%d ",a[i]);
    }
	return 0;
}