Pagini recente » Cod sursa (job #2289390) | Cod sursa (job #1006829) | Cod sursa (job #1646359) | Cod sursa (job #839211) | Cod sursa (job #2275584)
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
const int N = 500001;
int n, v[N];
int partitie (int v[], int st, int dr) {
int pivot = v[dr];
int i = st - 1;
for(int j = st; j < dr; j ++) {
if(v[j] < pivot) {
i ++;
swap (v[i], v[j]);
}
}
swap (v[i + 1], v[dr]);
return i + 1;
}
void quicksort (int v[], int st, int dr) {
if(st < dr) {
int part = partitie (v, st, dr);
quicksort (v, st, part - 1);
quicksort (v, part + 1, dr);
}
}
void afisare (int v[]) {
for(int i = 0; i < n; i ++)
g << v[i] << ' ';
}
int main()
{
f >> n;
for(int i = 0; i < n; i ++)
f >> v[i];
int k = rand() % n;
swap (v[k], v[n - 1]);
quicksort (v, 0, n - 1);
afisare (v);
return 0;
}