Pagini recente » Cod sursa (job #3266644) | Cod sursa (job #2167794) | Cod sursa (job #2845862) | Cod sursa (job #1378159) | Cod sursa (job #809681)
Cod sursa(job #809681)
#include<cstdio>
#include<algorithm>
#include<time.h>
using namespace std;
int n, v[1<<21];
void qsort(int st, int dr) {
int i = st, j = dr, pivot = i + rand() % (j - i + 1), value = v[pivot], index;
swap(v[pivot], v[j]);
for (index = st; i < dr; i++)
if (v[i] < value)
swap(v[i], v[index++]);
swap (v[index], v[dr]);
if (st < index - 1) qsort (st, index - 1);
if (dr > index + 1) qsort (index + 1, dr);
}
int main() {
freopen("algsort.in", "r", stdin), freopen("algsort.out", "w", stdout);
scanf("%d", &n);
for(int i = 0; i < n; i++) scanf("%d", &v[i]);
srand(time(NULL));
qsort(0, n - 1);
for(int i = 0; i < n; i++) printf("%d ", v[i]);
}