Pagini recente » Cod sursa (job #1147437) | Cod sursa (job #1996680) | Cod sursa (job #2357106) | Cod sursa (job #2518036) | Cod sursa (job #3227067)
#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 index = l-1;
for(int i = l; i < r; i++){
if(A[i] >= A[r])
continue;
int aux = A[i];
A[i] = A[index+1];
A[index+1] = aux;
index = index + 1;
}
int aux = A[index+1];
A[index+1] = A[r];
A[r] = aux;
return index + 1;
}
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] << " ";
}