#include #include #include #include #include using namespace std; int N; void input( vector & v ) { scanf("%d", &N); int a; for( int i = 0; i < N; i++ ) { scanf("%d", &a); v.push_back(a); } } void quickSort( vector & v ) { if( v.size() <= 1 ) return; int pivot = rand() % v.size(); vector v1, v2, vp; for( int i = 0; i < v.size(); i++ ) { if( v[i] < v[pivot] ) v1.push_back(v[i]); else if( v[i] > v[pivot] ) v2.push_back(v[i]); else vp.push_back(v[i]); } quickSort(v1); quickSort(v2); v.clear(); v.insert(v.end(), v1.begin(), v1.end()); v.insert(v.end(), vp.begin(), vp.end()); v.insert(v.end(), v2.begin(), v2.end()); } void print( vector & v ) { for( int i = 0; i < N; i++ ) printf("%d ", v[i]); printf("\n"); } int main() { srand((unsigned)time(0)); vector v; input(v); quickSort(v); print(v); return 0; }