5个MTE,求助
查看原帖
5个MTE,求助
355643
蒟蒻QWQ2008楼主2020/6/28 17:23
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
#include<ctime>
#include<cstring>
using namespace std;
int n,a[1000001];

void mid(int l,int r)
{
    int m=a[(l+r)/2];
    int i=l,j=r;
   do
   {
   while(a[i]<m)
    {
        i++;
    }
    while(a[j]>m)
    {
        j--;
    }
    if(i!=j)
    {
        swap(a[i],a[j]);
        i++;
        j--;
    }
   }
    while(i<=j)
    {
        if(l<j) 
        {
            mid(l,j);
        }
        if(i<r) 
        {
            mid(i,r);
        }
    }   
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    mid(1,n);
    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
    return 0;
}
2020/6/28 17:23
加载中...