#include<iostream>
using namespace std;
int a[10001];
int main()
{
int i,j,n;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<n;i++) //进行第i趟排序
for(j=i+1;j<=n;j++) //第i趟要比较的次数
if(a[i]>a[j])
swap(a[i],a[j]);
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
/*
1. 选择排序
(1) 基本思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,
顺序放在待排序的数列的最前,直到全部待排序的数据元素排完。
(2)排序过程:
【示例】:
初 始 关键字 [49 38 65 97 76 13 27 49]
第一趟排序后 13[49 65 97 76 38 27 49]
第二趟排序后 13 27[65 97 76 49 38 49]
第三趟排序后 13 27 38 [97 76 65 49 49]
第四趟排序后 13 27 38 49 [97 76 65 49]
第五趟排序后 13 27 38 49 49 [97 76 65]
第六趟排序后 13 27 38 49 49 65 [97 76]
第七趟排序后 13 27 38 49 49 65 76 [97]
最后排序结果 13 27 38 49 49 65 76 97
*/
#include<iostream>
using namespace std;
const int MAXN=10001;
int main()
{
int n,k,i,j;
float temp,a[MAXN];
//输入n个数
cin>>n;
for (i=0;i<n;i++)
{
cin>>a[i];
}
for (i=0;i<n;i++)
//i控制当前序列中最小值存放的数据位置 n
{
k=i;
//在当前无序区a[i..n]中选最小的元素a[k]
for (j=i+1;j<n;j++)
if (a[j]<a[k]) k=j;
//交换a[i]和a[k],将当前最小值放到a[i]位置
if ( k != i )
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
for (i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}