求码,c语言实现递归排序

这是要求结果

img


这是我的结果

img

该怎么实现呀,实在改不过来了

代码传不上来,只好用图片替代了

img

img

img

一种写法,供参考:

//应用递归函数实现起泡排序
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20
void merage_sort(int a[], int n)
{
    int tmp;
    if (n == 1)
        return;
    else {
        for (int i = 0; i < n - 1; i++) {
            if (a[i] < a[i + 1]) {
                tmp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = tmp;
            }
        }
        merage_sort(a, n - 1);
    }
}
int main()
{
    int a[N], i;
    srand((unsigned int)time(NULL));

    printf("数组排序前:\n");
    for (i = 0; i < N; i++){
         a[i] = rand() % 100 + 1;
         printf("%3d", a[i]);
    }
    printf("\n");

    merage_sort(a, N);   //排序

    printf("数组排序后:\n");
    for (i = 0; i < N; i++)
         printf("%3d", a[i]);
    printf("\n");

    return 0;
}