Pagini recente » Cod sursa (job #265136) | Cod sursa (job #747443) | Cod sursa (job #2509986) | Cod sursa (job #1042234) | Cod sursa (job #543423)
Cod sursa(job #543423)
#include<stdio.h>
#define NMAX 500010
//quick by the book
//sort of ish
int A[NMAX];
int partition( int left, int right )
{
int i,j;
i=left-1;
for( j=left; j<=right; ++j)
{
if( A[j]<=A[right] )
{
int aux=A[j];
A[j]=A[++i];
A[i]=aux;
}
}
int aux=A[right];
A[right]=A[++i];
A[i]=aux;
return i;
}
void quicksort(int left,int right)
{
int p;//pivot
if( left<right )
{
p=partition( left, right );
if( p<right )
{
quicksort( left,p );
quicksort( p+1,right );
}
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int N;
scanf("%d",&N);
int i;
for(i=1; i<=N; ++i)
scanf("%d",&A[i]);
quicksort(1,N);
for(i=1; i<=N; ++i)
printf("%d ",A[i]);
printf("\n");
return 0;
}