Pagini recente » Cod sursa (job #1642249) | Cod sursa (job #1320872) | Cod sursa (job #871854) | Cod sursa (job #2124313) | Cod sursa (job #1009736)
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
#define NMax 1000001
int pivot, i,j, A[NMax],q, N;
int partition( int* A, int left, int right ){
pivot = A[left];
i = left + 1;
for( j = left+1; j <= right; j++ )
if( A[j] <= pivot ){
swap( A[i], A[j] );
i++;
}
swap( A[left], A[i-1] );
return i-1;
}
void QuickSort( int* A, int left, int right ){
if( left >= right )
return ;
else{
q = partition( A,left,right );
QuickSort(A, left, q-1);
QuickSort(A, q+1, right);
}
}
int main (){
freopen("algsort.in", "r", stdin );
freopen("algsort.out", "w", stdout );
scanf("%d",&N);
for( int i = 0; i < N; i++ )
scanf("%d", &A[i]);
QuickSort(A,0,N-1);
for( int i = 0; i < N; i++ )
printf("%d ", A[i] );
return 0 ;
}