选择排序基本思想:在待排序序列中选择最小的记录,然后将这个数据元素与第一个记录交换,第一个记录到位,这是第一趟排序,然后进行第二趟排序,以此类推,进行n-1趟,序列就排序完成了,接下来看看代码。
代码如下:
void Swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void select_sort(int arr[], int sz)
{
//i表示每次要放入的位置
int i = 0;
int j = 0;
//min表示的是每次最小值的下标
int min = 0;
for (i = 0; i < sz - 1; i++)
{
min = i;
//找最小的数的下标
for (j = i; j < sz; j++)
{
if (arr[j] < arr[min])
{
min = j;
}
}
if (min != i)
{
Swap(arr + min, arr + i);
}
}
}
study hard and make progress every day!