选择排序: 从待排序的序列中选取元素最小的,记录其下标并和序列中为排序的序列开始元素交换,N个元素进行N-1次即可。
实现:
void select_sort(int *arr, int len)
{
assert(arr != NULL && len > 0);
int min;
int index = 0;
for(int i = 0; i < len-1; ++i)
{
min = arr[i];
for(int j = i+1; j < len; ++j)
{
if(arr[j] < min)
{
min = arr[j];
index = j;
}
}
if(index != i)
{
swap(arr[index], arr[i]);
}
}
}