#include<iostream>
using namespace std;
int a[101],n;//定义一个整形数组还有变量n,主函数和调用函数都可以用
void quicksort(int left,int right) { //形参是数组的起点和终点
int i,j,t,temp;
if(left>right)//如果left比right大,结束
return;
temp=a[left];//a[left]的值作为基准值,temp标记来标记a[left],用于之后的比较大小,
i=left;//i表示起点
j=right;//j表示终点
while(i!=j) { //i没有遇到j的时候
while(a[j]>=temp&&i<j)
j--;//从右往左找比temp值要小的值
while(a[i]<=temp&&i<j)
i++;//从左往右找比temp值要大的值
if(i<j) {
t=a[i];
a[i]=a[j];
a[j]=t;//用于调换a[i]和a[j],使得temp的右侧大于temp,左侧小于temp
}
}
a[left]=a[i];//把a[left]给下个基准值
a[i]=temp;//把现基准值给a[i]
quicksort(left,i-1);//递归temp左侧
quicksort(i+1,right);//递归temp右侧
return ;
}
int main() {
int i,j;
cin>>n;
for(i=1; i<=n; i++) {
cin>>a[i];
}
quicksort(1,n);
for(i=1; i<=n; i++) {
cout<<a[i]<<" ";
}
return 0;
}