选择排序:每一次在n-i+1(i=1,2,,,n-1)个记录中选取关键字最小的记录作为有序序列第i个记录。
复杂度为O(^2),不稳定的排序
代码如下:
#include <iostream>
using namespace std;
void print(int *a,int n){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
void select_sort(int *a,int n){
for(int i=0;i<n-1;i++){
int min_value = a[i];
int index = i;
for(int j=i+1;j<n;j++){
if(a[j] < min_value){
index = j;
min_value = a[j];
}
}
if(index != i){
int tem = a[index];
a[index] = a[i];
a[i] = tem;
}
}
}
int main()
{
int *a;
int n;
cin>>n;
a= new int[n+1];
for(int i=0;i<n;i++){
cin>>a[i];
}
select_sort(a,n);
print(a,n);
return 0;
}