#include <iostream>
#include<vector>
#include<array>
using namespace std;
void selectSort(vector<int> &v){
int len = v.size();
for(int i=0;i<len;i++){
int min = v[i];
int id = i;
for(int j=i+1;j<len;j++){
if(v[j]<min){
min = v[j];
id =j;
}
}
if(id!=i){
v[id]=v[i];
v[i]=min;
}
}
}
void maopaoSort(vector<int> &v){
int len = v.size();
for(int i=0;i<len;i++){
for(int j=0;j<len-i-1;j++){
if(v[j]>v[j+1]){
int temp = v[j+1];
v[j+1]= v[j];
v[j] = temp;
}
}
}
}
void charuSort(vector<int> &v){
int len = v.size();
for(int i=1;i<len;i++){
for(int j=i;j> 0;j--){
if(v[j] < v[j-1]){
int temp = v[j-1];
v[j-1]= v[j];
v[j] = temp;
}else{
break;
}
}
}
}
void merge(vector<int> &v,int start,int end){
int mid = (start + end ) >> 1;
int arr[end-start+1] = {};
int i = start;
int j = mid +1;
int k = 0;
while (i <=mid && j<=end) {
if(v[i]<=v[j]){
arr[k++]=v[i++];
}else{
arr[k++]=v[j++];
}
}
for(int s =i;s<=mid;s++){
arr[k++]=v[s];
}
for(int s =j;s<=end;s++){
arr[k++]=v[s];
}
for(int s =0;s<end-start+1;s++){
v[start+s]= arr[s];
// cout << s << "" << arr[s] << endl;
}
// cout << endl;
}
void binGuiSort(vector<int> &v,int start,int end){
if(start>=end){
return;
}
int mid = (start + end ) >> 1;
binGuiSort(v,start,mid);
binGuiSort(v,mid+1,end);
merge(v,start,end);
}
void quicklySort(vector<int> &v,int start,int end){
if(start>=end){
return;
}
int base = v[start];
int baseIndex = start;
int i = start;
int j = end;
while(i<j){
// 右边
while (i<j && v[j]>=base) {
j--;
}AA
if(i<j){
v[baseIndex] = v[j];
baseIndex = j;
i++;
}
// 左边
while (i<j && v[i]<=base) {
i++;
}
if(i<j){
v[baseIndex] = v[i];
baseIndex = i;
j--;
}
v[i]=base;
}
quicklySort(v,start,i-1);
quicklySort(v,i+1,end);
}
void printArr(vector<int> &v){
int len = v.size();
for(int s : v){
cout << s << " ";
}
cout << endl;
}
void test(){
int n;
cin >> n;
vector<int> v = vector<int>(n);
for(int i=0;i<n;i++){
cin >> v[i];
}
printArr(v);
// selectSort(v);
// maopaoSort(v);
//charuSort(v);
//binGuiSort(v,0,n-1);
quicklySort(v,0,n-1);
printArr(v);
cout << "test end " << endl;
}
int main()
{
while(true){
test();
}
return 0;
}