inlineintread(){ char c; while (c = getchar(), c < '0' || c > '9'); intx(c - '0'); while (c = getchar(), c >= '0' && c <= '9') { x = x * 10 + c - '0'; } return x; }
int n; int a[MAXn + 10]; void _QuickSort_(int* a, int l, int r) { int i = l, j = r, f = a[(l + r) / 2]; do { while (a[i] < f) { i++; } while (a[j] > f) { j--; } if (i <= j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; i++; j--; } } while (i <= j); if (l < j) { _QuickSort_(a, l, j); } if (i < r) { _QuickSort_(a, i, r); } }
voidQuickSort(int* a, int l, int r){ _QuickSort_(a, l, r - 1); }
intmain(){ n = read(); for (int i = 0; i < n; i++) { a[i] = read(); } QuickSort(a, 0, n); for (int i = 0; i < n; i++) { printf("%d ", a[i]); } }