#include <stdio.h>
int Partition(int arr[], int low, int high)
{
int pivot = arr[low];//pivot 支点;中心
while (low < high)
{
while (low < high && arr[high] >= pivot)
{
high--;
}
arr[low] = arr[high];
while (low < high && arr[low] <= pivot)
{
low++;
}
arr[high] = arr[low];
}
arr[low] = pivot;
return low;
}
void Quicksort(int arr[], int low, int high)
{
if (low < high)
{
int pivotpos = Partition(arr, low, high);
Quicksort(arr, low, pivotpos - 1);
Quicksort(arr, pivotpos + 1, high);
}
}
int main()
{
int arr[100001];
int n;
int low = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
Quicksort(arr, low, n-1);
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
return 0;
}