原理:
首先从原有的数组中选择出一个最小的数,放在第一个位置,然后再遍历后面的序列,找到最小值。依次遍历完成排序
代码:
c++
#include <iostream>
using namespace std;
void selectionSort(int arr[],int len){
for(int i = 0;i < len ;i++){
//在[i,n)区间里寻找最小值
int minIndex = i;
for(int j = i+1;j < len;j++){
if(arr[j]< arr[minIndex]){
minIndex = j;
}
}
swap(arr[i],arr[minIndex]);
}
}
int main(){
int arr[10] = {10,9,8,7,6,5,4,3,2,1};
selectionSort(arr,10);
cout << "数组长度" << sizeof(arr) << endl;
for (int i = 0; i < 10; ++i) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}