Pagini recente » Cod sursa (job #2523586) | Cod sursa (job #2729725) | Cod sursa (job #3162946) | Cod sursa (job #764919) | Cod sursa (job #266849)
Cod sursa(job #266849)
#include <stdio.h>
#define nmax 500001
long int A[nmax],i,n;
int pivot(int st,int dr)
{
int s0=0,d0=-1;
while (st<dr)
{
if (A[st]>A[dr])
{
A[0] = A[st];
A[st] = A[dr];
A[dr] = A[0];
A[0] = -s0;
s0 = -d0;
d0 = A[0];
}
st+=s0;
dr+=d0;
}
return st;
}
void sort(int st,int dr)
{
if (st<dr)
{
int m = pivot(st,dr);
sort(st,m-1);
sort(m+1,dr);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++) scanf("%ld",&A[i]);
sort(1,n);
for (i=1;i<=n;i++) printf("%ld ",A[i]);
}