Pagini recente » Cod sursa (job #349156) | Cod sursa (job #1081416) | Cod sursa (job #101138) | Cod sursa (job #672399) | Cod sursa (job #474722)
Cod sursa(job #474722)
#include<iostream>
#include<fstream>
#include<time.h>
#include<unistd.h>
#define N 100000
using namespace std;
int a[500010];
ofstream g;
int partition(int lo, int hi){
int i = lo, j = hi;
int val, aux;
val = a[lo];
i = lo;
j = hi;
while (i < j){
while ( a[j] > val)
j--;
aux = a[i];
a[i] = a[j];
a[j] = aux;
i++;
while ( a[i] < val)
i++;
aux = a[i];
a[i] = a[j];
a[j] = aux;
j--;
}
return j;
}
void quick(int lo, int hi){
int x, nx, aux, i, j;
if (lo < hi){
nx = partition(lo, hi);
quick(lo, nx-1);
quick(nx+1, hi);
}
}
int main(){
ifstream f("algsort.in");
g.open("algsort.out");
int n, i;
f>>n;
srand(getpid());
for (i = 0; i < n; i++)
f>>a[i];
quick(0, n-1);
for (i = 0; i < n; i++)
g<<a[i]<<" ";
g<<'\n';
return 0;
}