Pagini recente » Cod sursa (job #2196625) | Cod sursa (job #1471368) | Cod sursa (job #2088019) | Cod sursa (job #1768858) | Cod sursa (job #1350400)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
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,ind;
ind=(l+(rand()%(r-l+1)));
swp(a[ind],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;
srand(time(NULL));
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;
}