//简单选择排序:本文实现递增序列
//每一趟在待排序元素中选取关键字最小的元素加入有序子序列
//时间复杂度:O(n^2)(与元素初始序列无关)
//不具有稳定性
#include <iostream>
using namespace std;
void selectSort(int a[],int n){
int min; //最小元素的值
int loc; //最小元素的位置
//i是在一趟选取中,最小元素的放置位置,最后一个元素已经有序,i<n-1
for(int i=0;i<n-1;i++){
min=a[i]; //记录包括i位置往后的元素中的最小
for(int j=i+1;j<n;j++){
if(min>a[j]){
min=a[j];
loc=j;
}
}
swap(a[loc],a[i]);
}
}
int main(){
int a[]={53,17,78,9,45,65,87,32,99,1};
int n=sizeof(a)/sizeof(int);\
selectSort(a,n);
//输出
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}
说明:本文为个人学习理解总结。