选择排序思想: 遍历一遍待排序数据,找到当前最大值位置,将当前最后一个元素与当前最大值交换,重复上述过程直到只剩下一个数据。
时间复杂度: O(n^2)
空间复杂度: O(1)
稳定性: 不稳定
void SelectSort(int* arr, int len)
{
for (int j = 0; j < len - 1; ++j)
{
int index = 0;
for (int i = 0; i < len - j; ++i)
{
if (arr[i] > arr[index])
{
index = i;
}
}
int tmp = arr[index];
arr[index] = arr[len - 1 - j];
arr[len - 1 - j] = tmp;
}
}
排序结果