Pagini recente » Istoria paginii runda/5_martie_simulare_oji_2024_clasele_11_12 | Statistici Vlad Butnaru (vlad_butnaru) | Cod sursa (job #952953) | Cod sursa (job #1915344) | Cod sursa (job #2220090)
/**
* Worg
*/
#include <cstdio>
#include <algorithm>
FILE *fin = freopen("algsort.in", "r", stdin); FILE *fout = freopen("algsort.out", "w", stdout);
const int MAX_N = 5e5 + 5;
void QuickSort(int *arr, int left, int right) {
int a = left, b = right, pivot = arr[(left + right) / 2];
do {
while(a < right && arr[a] < pivot) {
a++;
}
while(b > left && arr[b] > pivot) {
b--;
}
if(a <= b) {
std::swap(arr[a], arr[b]);
a++; b--;
}
}while(a <= b);
if(left < b) {
QuickSort(arr, left, b);
}
if(a < right) {
QuickSort(arr, a, right);
}
}
int main() {
int n, arr[MAX_N]; scanf("%d", &n);
for(int i = 1; i <= n; i++) {
scanf("%d", &arr[i]);
}
QuickSort(arr, 1, n);
for(int i = 1; i <= n; i++) {
printf("%d ", arr[i]);
}
}