Pagini recente » Cod sursa (job #541511) | Cod sursa (job #3227998) | Cod sursa (job #700756) | Cod sursa (job #2567115) | Cod sursa (job #856149)
Cod sursa(job #856149)
#include<cstdio>
#include<cstdlib>
#include<string.h>
using namespace std;
int v[500001], c[500001];
int n;
using namespace std;
struct mat { int nr; int dir;};
int partitionare(int st,int dr)
{
int pivot,p,i,j,aux;
p=(st+dr)/2;
pivot=v[p];
i=st-1;
j=dr+1;
while(1)
{
do{ i++; } while(v[i]<pivot);
do{ j--; } while(v[j]>pivot);
if(i<j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else
return j;
}
}
void sort(int st,int dr)
{
int partitie;
if(st<dr)
{
partitie=partitionare(st,dr);
sort(st,partitie);
sort(partitie+1,dr);
}
}
void read()
{
int i;
scanf("%d",&n);
for (i=1;i<=n;++i)
scanf("%d",&v[i]);
}
void write()
{
int i;
for (i=1;i<=n;++i)
printf("%d ",v[i]);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
read();
sort(1,n);
write();
}