Mai intai trebuie sa te autentifici.
Cod sursa(job #1766849)
Utilizator | Data | 28 septembrie 2016 16:33:56 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.92 kb |
#include<bits/stdc++.h>
using namespace std;
#define in f
#define out g
ifstream f ("algsort.in");
ofstream g ("algsort.out");
int n;
int v[500010];
void quick(int left, int right) {
int i = left, j = right;
int tmp;
int pivot = v[rand() % (right - left) + left + 1];
while (i <= j) {
while (v[i] < pivot)
i++;
while (v[j] > pivot)
j--;
if (i <= j) {
tmp = v[i];
v[i] = v[j];
v[j] = tmp;
i++;
j--;
}
};
if (left < j)
quick(left, j);
if (i < right)
quick(i, right);
}
int main() {
in >> n;
for(int i = 1; i <= n; ++i) {
in >> v[i];
}
quick(1, n);
for(int i = 1; i <= n; ++i) {
out << v[i] << " ";
}
}