Pagini recente » Cod sursa (job #1383408) | Cod sursa (job #2400629) | ONIS 2014, Clasament Runda 1 | Cod sursa (job #2612891) | Cod sursa (job #1539209)
#include <iostream>
#include <fstream>
#include <vector>
#include <string.h>
#include <algorithm>
using namespace std;
inline int partition(int *a, int st, int dr, int pivot) {
//swap(a[pivot], a[dr]);
int l = st;
for(int i = st ; i < dr ; ++ i)
if(a[i] < a[dr]) {
swap(a[l ++], a[i]);
}
swap(a[dr], a[l]);
return l;
}
inline void quicksort(int *a, int st, int dr) {
if(st >= dr)
return ;
int pivot = rand() % (dr - st + 1) + st;
int ind = partition(a, st, dr, pivot);
quicksort(a, st, ind - 1);
quicksort(a, ind + 1, dr);
}
int main() {
srand(time(NULL));
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
int a[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] << ' ';
}