#include<iostream>
#include<cstdio>
using namespace std;
const int N = 1E5 + 5;
int n, a[N], b[N];
#define debug cout << "DEBUG" << endl
void handle()
{
    for(int i = 1; i <= n; i++)
        cout << a[i] << " ";
    cout << endl;
}
void mergeIt(int left, int mid, int right)
{
    int i = left, j = mid + 1, cnt = left;
    while(i <= mid && j <= right)
    {
        if(a[i] < a[j])
        {
            b[cnt++] = a[i++];
        }
        else b[cnt++] = a[j++];
        
    }
    while(i <= mid) b[cnt++] = a[i++];
    while(j <= right) b[cnt++] = a[j++];
    for(int i = left; i <= right; i++)
        a[i] = b[i];
}
void ms(int left, int right)
{
    if(left >= right) return;
    int mid = left + (right - left) / 2;
   
    ms(left, mid);
    ms(mid + 1, right);

    mergeIt(left, mid, right);
}
void initInput()
{
    cin >> n;
    
    for(int i = 1; i <= n; i++)
        cin >> a[i];
    
    ms(1, n);
}
int main(void)
{
    initInput();    
    handle();
    return 0;
}****

0 条评论

目前还没有评论...

信息

ID
1085
时间
1000ms
内存
256MiB
难度
3
标签
递交数
186
已通过
53
上传者