Cod sursa(job #1350386)
Utilizator | Data | 20 februarie 2015 19:37:37 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
using namespace std;
int N,a[500010];
void swp(int &x, int &y){
int aux=x;
x=y;
y=aux;
}
void qsort(int l, int r){
if (l>=r) return;
int i,c=l;
swp(a[(l+r)/2],a[r]);
for (i=l; i<r; i++)
if (a[i]<=a[r]){
swp(a[i],a[c]);
c++;
}
swp(a[r],a[c]);
qsort(l,c-1);
qsort(c+1,r);
}
int main(){
ifstream fin("algsort.in");
ofstream fout("algsort.out");
fin >> N;
int i;
for (i=1; i<=N; i++) fin >> a[i];
qsort(1,N);
for (i=1; i<=N; i++) fout << a[i] << " ";
return 0;
}