每次找最小或者最大的放在头或者尾部,然后遍历下去,依次把剩下元素中最小或者最大的放在第一个元素后面
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void SelectSort(int *arr, int length)
{
if (arr == NULL || length <= 0)return;
int index;
int min;
for (int i = 0; i < length-1; ++i)
{
min = arr[i]
index = i;
for (int j = i + 1; j < length; ++j)
{
if (arr[j] < min)
{
index = j;
min = arr[j];
}
}
if (index != i)swap(&arr[i], &arr[index]);
}