#include <iostream>
using namespace std;
void quicksort(int,int);
int a[1000];
int main()
{
int n,i;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
quicksort(0,n-1); //不要写成n
for(i=0;i<n;i++)
{
cout<<a[i]<<' ';
}
return 0;
}
void quicksort(int l,int r)
{
int i,j,mid,temp;
i=l;
j=r;
mid=a[(l+r)/2]; //将中间位置的数定为枢轴
do{
while(a[i]<mid) //在左半部分寻找比中间大的数
i++;
while(a[j]>mid) //在右半部分寻找比中间小的数
j--;
if(i<=j){
temp=a[i]; //若找到一组与排序目标不一致,则交换他们
a[i]=a[j];
a[j]=temp;
i++;j--; //继续找
}
}while(i<=j); //不能少等号
if(l<j)
quicksort(l,j); //若未到两个数边界,则递归搜索左右区间
if(i<r)
quicksort(i,r);
}