选择排序思想:第一个数与后面的数比较,记录下 最小数的下标,然后交换 位置 后放到第一个位置,从第二个数开始,后面的数与第二个数比较 ,记录第二小的数下标,交换,放到第二个位置。。。。
选择排序是不稳定的排序方法
#include <iostream>
#include <cassert>
using namespace std;
void select_sort(int *a , int n);
void select_sort(int *a , int n)
{
assert(a);
int i , j, min;
for(i = 0 ; i < n - 1; i++)
{
min = i;
for( j = i + 1;j < n; j++)
{
if(a[min] > a[j] )
min = j;
}
if(i != min)
{
int temp = a[i];
a[i] =a[min];
a[min] = temp;
}
}
}
int main()
{
int arr[5] = {4,6,2,8,1};
select_sort(arr,5);
int i = 0;
for(i = 0;i < 5; i ++)
cout << " " << arr[i] << " ";
cout <<endl;
}