#include<iostream>
using namespace std;
const int maxn = 5000;
int main()
{
void selection_sort(int A[], int n);
void put(int A[], int n);
int n, A[maxn];
cin >> n;
for(int i = 0; i < n; ++i)
cin >> A[i];
selection_sort(A, n);
put(A, n);
return 0;
}
int min(int A[], int beg, int n)
{//查找最小数并返回
int min = A[beg], index = beg;
for(int i = beg+1; i < n; ++i)
if(A[i] < min)
{
min = A[i];
index = i;
}
return index;
}
void exchange(int A[], int i, int j)
{//交换两数
int t;
t = A[i];
A[i] = A[j];
A[j] = t;
}
void selection_sort(int A[], int n)
{//选择排序
int index = 0;
for(int i = 0; i < n; ++i)
{
index = min(A, i, n-1);
exchange(A, i, index);
}
}
void put(int A[], int n)
{//输出
for(int i = 0; i < n; ++i)
cout << A[i] << " ";
cout << endl;
}
//时间复杂度:T(n) = Θ(n^2)(最好与最坏情况下都是一样的);
/*
8
3 6 5 7 2 0 1 9
*/