编辑代码

#include <iostream>
#include <cstdlib>

using namespace std;

const int N = 100010;
int Data[N], tmp[N]; 

void MergeSort(int l, int r)
{
    if (l >= r) return;
    int mid = l + r >> 1;
    MergeSort(l, mid), MergeSort(mid + 1, r);
    int k = 0, i = l, j = mid + 1;
    while (i <= mid && j <= r)
        if (Data[i] > Data[j]) tmp[k++] = Data[j++];
        else tmp[k++] = Data[i++];
    while (i <= mid) tmp[k++] = Data[i++];
    while (j <= r) tmp[k++] = Data[j++];
    for (int o = 0; o < k; o++) Data[l + o] = tmp[o];

}
void Print(int nums[], int len)
{
    for (int i = 0; i < len; i++) cout << nums[i] << " ";
    cout << endl;
}
int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) Data[i] = rand() % (n * 2);
    Print(Data, n);
    MergeSort(0, n - 1);
    Print(Data, n);
    return 0;
}