c++代码
void selectSort(int arr[],int n)
{
for (int i = 0; i < n; ++i)
{
int minIndex = i;//最小值所在索引
for (int j = i + 1; j < n; ++j)//从最小值所在位置加一向后遍历 在待排序列表中搜索最小值
{
if (arr[j] < arr[minIndex])//如果后续值小于当前最小值 则更新最小值索引保证取到后续列表中最小值
{
minIndex = j;//更新最小值索引
}
}
//内循环结束当前minIndex索引到待排序列表中的最小值 与前半段有序列表后第一个值交换
//待排序列表缩短 开始下一次迭代
swap(arr[i], arr[minIndex]);
}
}
时间复杂度:O(n²)
空间复杂度:O(1)
不稳定排序