简单选择排序
简单选择排序是最简单的选择类排序,是一种不稳定排序。
每次在待排序区间寻找最小的一个元素,将它与待排序区间的第一个元素交换,紧接着待排序区间长度- 1,再寻找当前待排序区间寻找最小的一个元素,当待排序区间剩余一个元素的时候,选择排序结束。
void SelectSort(int* arr,int len){
for(int i = 0;i < len-1;i ++){
int k = i;
for(int j = i + 1;j < len;j ++)
if(arr[j] < arr[k]) k = j; //当前具有最小排序码值的记录
if(k != i){ //k有变化
//swap
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
代码如下:
#include<iostream>
using namespace std;
//选择排序
void SelectSort(int* arr,int len){
for(int i = 0;i < len-1;i ++){
int k = i;
for(int j = i + 1;j < len;j ++)
if(arr[j] < arr[k]) k = j; //当前具有最小排序码值的记录
if(k != i){ //k有变化
//swap
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
int main(){
int arr[] = {2,6,7,4,3,1,0,9,8,5};
for(int i = 0;i < 10;i ++) cout<<arr[i]<<" ";
cout<<endl;
SelectSort(arr,10);
for(int i = 0;i < 10;i ++) cout<<arr[i]<<" ";
}
运行结果: