Pagini recente » Cod sursa (job #2812764) | Cod sursa (job #1662356) | Cod sursa (job #2331756) | Cod sursa (job #2783198) | Cod sursa (job #3227066)
#include <iostream>
#include <fstream>
#define limit 500000
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int partition(unsigned int* A, int l, int r){
int pivot = A[r];
int index = l;
for(int i = l+1; i < r; i++){
if(A[i] >= A[r])
continue;
int aux = A[i];
A[i] = A[index];
A[index] = aux;
index = index + 1;
}
int aux = A[r];
A[r] = A[index];
A[index] = aux;
return index;
}
void quicksort(unsigned int* A, int l, int r){
if(l < r){
int pi = partition(A, l, r);
quicksort(A, l, pi-1);
quicksort(A, pi+1, r);
}
}
int main(){
unsigned int A[limit];
int N;
fin >> N;
for(int i = 0; i<N; i++){
fin >> A[i];
}
quicksort(A, 0, N-1);
for(int i = 0; i<N; i++)
fout << A[i] << " ";
}