今天,我来向大家介绍另一种排序方法:选择排序。这种排序思路非常简单,如图所示:

就是把未排序的数列中最小(或最大)的数与未排序的第一个数交换。不多说了,上代码:
#include<bits/stdc++.h>
using namespace std;
int a[110];
int n;
//选择排序
int main(){
cin >> n; //共有n个整数待排序
for(int i=0;i<n; i++) //输入n个整数
cin>>a[i];
//下面对整个数组进行从小到大排序
for(int i=0;i<n-1;i++){ //每次循环将第i小的元素放好
int tmpMin=i; //用来记录从第i个到第n-1个元素中,最小的那个元素的下标
for(int j=i;j<n;j++){
if(a[j]<a[tmpMin])
tmpMin=j;
}
//下面将第i小的元素放在第i个位置上,并将原来占着第i个位置的那个元素挪到后面
swap(a[i],a[tmpMin]);
}
//下面两行将排序好的n个元素输出
for(int i=0;i<n;++i)
cout << a[i] << endl;
return 0;
}
结果:
