选择排序基本思想如下:
- 遍历未排序数组,选出最小值,放在数组开头
- 在剩余未排序数组中,选出最小值,排在已排序数组的结尾
- 重复以上步骤,知道所有元素排序完毕。
时间复杂度O(n*n), 空间复杂度O(1)
具体代码如下:
class Solution
{
void selectSort(vector<int> & array)
{
int num = array.size();
int min = 0, maxValue = INT_MAX;
for (int i = 0; i < num; ++i)
{
for(int j = i; j < num; ++i)
{
if(array[j] < maxValue)
{
maxValue = array[j];
min = j;
}
}
if(min != i) swap(a[i], a[min]);
}
return;
}
}