#include void QuickSort(int[], int, int); void swap(int*, int*); int main() { using namespace std; // input case. int k; cin >> k; int* array = new int[k]; for (int i = 0; i < k; i++) cin >> array[i]; QuickSort(array, 0, k-1); bool first = true; for (int i = 0; i < k; i++) if (first) { cout << array[i]; first = false; } else cout << " " << array[i]; cout << endl; return 0; } void QuickSort(int array[], int begin, int end) { if (end-begin <= 0) ; else if (end-begin == 1) { if (array[end] < array[begin]) swap(&array[end], &array[begin]); } else { int pivot = array[end]; int i = begin-1; for (int now = begin; now < end; now++) { if (array[now] < pivot) { i++; if (!(now == i)) swap(&(array[now]), &(array[i])); } } swap(&array[i+1], &array[end]); QuickSort(array, begin, i); QuickSort(array, i+2, end); } } void swap(int* a, int* b) { *a = (*a ^ *b); *b = (*a ^ *b); *a = (*a ^ *b); }