problem link:www.luogu.org/problemnew/…
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 100000;
int a[maxn + 10];
void quick_sort(int a[], int left, int right) {
if(left >= right) return;
int L = left, R = right;
int pivot = a[(L + R) >> 1];
while(L <= R) {
while(L <= R && a[L] < pivot) L++;
while(R >= L && a[R] > pivot) R--;
if(L <= R) {
if(a[L] != a[R]) swap(a[L], a[R]);
L++;
R--;
}
}
if(left < R) quick_sort(a, left, R);
if(L < right) quick_sort(a, L, right);
}
int main() {
scanf("%d", &a[0]);
for(int i = 1; i <= a[0]; i++) {
scanf("%d", &a[i]);
}
quick_sort(a, 1, a[0]);
for(int i = 1; i < a[0]; i++) {
printf("%d ", a[i]);
}
printf("%d\n", a[a[0]]);
return 0;
}