Pagini recente » Cod sursa (job #801032) | Cod sursa (job #1129814) | Cod sursa (job #3039792) | Cod sursa (job #168928) | Cod sursa (job #543428)
Cod sursa(job #543428)
#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-1 );
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;
}