//选择法排序
//交换:最小放第一个,第二小放第二个
void SelectSort(int* arr, int len)
{
int minIndex;//最小值下标
int tmp;
for (int i = 0; i < len - 1; i++)//趟数
{
minIndex = i;
for (int j = i + 1; j < len; j++)//每一趟最小
{
if (arr[i] < arr[minIndex])
minIndex = i;
}
if (minIndex != i)
{
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
for (int i = 0; i < len; i++)
{
printf("%c", arr[i]);
}
}
若要从小往大排,从要排的里面选出最小的数记录其下标,与第一个数交换位置,然后再在剩下的数里找最小数,与第二个数交换位置,以此类推。
时间复杂度O(n^2)