Pagini recente » Borderou de evaluare (job #1785150) | Cod sursa (job #299176) | Borderou de evaluare (job #2564428) | Cod sursa (job #1583964)
#include <iostream>
#include <fstream>
#define NMAX 500005
using namespace std;
int a[NMAX], N;
void qswap(int i, int j){
int aux=a[i];
a[i]=a[j];
a[j]=aux;
}
void qsort(int left, int right)
{
if(left>=right)
return;
int piv = left + (right - left)/2;
qswap(left, piv);
int last = left;
for(int i=left+1; i<=right; i++)
{
if(a[left] > a[i])
qswap(++last, i);
}
qswap(last, left);
qsort(left, last-1);
qsort(last+1, right);
}
int main()
{
freopen("algsort.in","rt",stdin);
freopen("algsort.out","wt",stdout);
scanf("%d", &N);
for(int i=1;i<=N;i++)
scanf("%d", &a[i]);
qsort(1,N);
for(int i=1;i<=N;i++)
cout<<a[i]<<' ';
return 0;
}