Pagini recente » Cod sursa (job #2484006) | Cod sursa (job #2795382) | Cod sursa (job #136284) | Cod sursa (job #175299) | Cod sursa (job #1529262)
#include <fstream>
#include <cstdio>
#include <ctime>
#include <cstdlib>
using namespace std;
const int MAX_N = 500002;
int v[MAX_N];
void quickSort(int left, int right) {
if(left == right) {
return;
}
int pivot = left + rand() % (right - left + 1);
int i = left, j = right;
while(i < j) {
while(i < pivot && v[i] < v[pivot]) {
++i;
}
while(j > pivot && v[j] > v[pivot]) {
j--;
}
if(i < j) {
swap(v[i], v[j]);
}
}
quickSort(left, pivot);
if(pivot < right) {
quickSort(pivot + 1, right);
}
}
int main() {
srand(time(NULL));
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int n;
scanf("%d", &n);
for(int i = 0; i < n; ++i) {
scanf("%d", &v[i]);
}
quickSort(0, n - 1);
for(int i = 0; i < n; ++i) {
printf("%d ", v[i]);
}
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}