Pagini recente » Cod sursa (job #3152822) | Monitorul de evaluare | Cod sursa (job #3127278) | Cod sursa (job #565000) | Cod sursa (job #1066695)
#include <stdio.h>
#include <fstream>
#include <iostream>
using namespace std;
int n,a[500008];
int part( int a[], int l, int r) {
int pivot, i, j, t;
pivot = a[l];
i = l;
j = r+1;
while(1)
{
do ++i; while( a[i] <= pivot && i <= r );
do --j; while( a[j] > pivot );
if( i >= j ) break;
t = a[i]; a[i] = a[j]; a[j] = t;
}
t = a[l];
a[l] = a[j];
a[j] = t;
return j;
}
inline void quickSort( int a[], int l, int r)
{
int j;
if( l < r )
{
j = part( a, l, r);
quickSort( a, l, j-1);
quickSort( a, j+1, r);
}
}
int main()
{
ifstream in ("algsort.in");
ofstream out ("algsort.out");
in>>n;
int i;
for(i=1;i<=n;i++)
{
in>>a[i] ;
}
quickSort( a, 0, n);
for(i = 1; i <=n; i++)
out<<a[i]<<" ";
return 0;
}