HELP!!!
查看原帖
HELP!!!
273896
L_Hospital_楼主2021/2/8 19:21
# include <iostream>
using namespace std;

int a[100005];

void sort(int l, int r)
{
    if (r - l <= 10)
    {
        for (int i = l; i <= r; i++)
            for (int j = i; j <= r; j++)
                if (a[i] > a[j])
                    swap(a[i], a[j]);
        return;
    }
    int mid = (l + r) / 2, t = l - 1, t1 = l, t2 = mid + 1, x[100005];
    sort(l, mid);
    sort(mid + 1, r);
    for (int i = l; i <= r; i++)
        x[i] = a[i];
    while (t1 <= mid && t2 <= r)
        if (x[t1] >= x[t2])
            a[++t] = x[++t2];
        else
            a[++t] = x[++t1];
    for (; t1 <= mid; t1++)
        a[++t] = x[t1];
    for (; t2 <= r; t2++)
        a[++t] = x[t2];
    return;
}
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    sort(1, n);
    for (int i = 1; i <= n; i++)
        cout << a[i] << " ";
    return 0;
}
2021/2/8 19:21
加载中...