Pagini recente » Cod sursa (job #2172540) | Cod sursa (job #2203) | Cod sursa (job #2973576) | Cod sursa (job #1449707) | Cod sursa (job #2393144)
#include <iostream>
#include <fstream>
#define MAX 500100
#define MOD 555557
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int A[MAX];
void quicksort(int l, int r) {
int p, i, j;
i = l;
j = r;
p = A[(l + r) >> 1];
do {
while(( i < r) && (A[i] < p))
i++;
while((j > l) && (A[i] > p))
j--;
if(i <= j) {
swap(A[i], A[j]);
i++;
j--;
}
} while(i <= j);
if(l < j)
quicksort(l, j);
if(i < r)
quicksort(i, r);
}
void QUICKSORT(int l, int r) {
int x, i, j, t;
i = l;
j = r;
x = A[(i + j)>>1];
do {
while ( (i < r) && (A[i] < x) ) i++;
while ( (j > l) && (A[j] > x) ) j--;
if ( i <= j ) {
swap(A[i],A[j]);
i++;
j--;
}
} while ( i <= j );
if ( l < j ) QUICKSORT(l, j);
if ( i < r ) QUICKSORT(i, r);
}
int main() {
int N;
in >> N;
for(int i = 1; i <= N; i++)
in >> A[i];
QUICKSORT(1, N);
for(int i = 1; i <= N; i++)
out << A[i] << " ";
return 0;
}