//算法的实现是记住最小值的位置,注意不是最小值!
void selectSort()
{
std::vector<int> V{ 5,2,9,4,1,8,3,7,6 };
for (size_t i = 0; i < V.size()-1; ++i) {
int minSeat = i; //最小值的位置
for (size_t j = i + 1; j < V.size(); ++j) {
if (V[j] < V[minSeat])
minSeat = j; //如果在未排序的数组序列中找到更小的值,那么更新位置
}
std::swap(V[minSeat], V[i]); //把最小值放在前面位置
}
for (const auto &i : V)
std::cout << i << " ";
std::cout << std::endl;
}
选择排序是排序算法中比较简单的。
主要思路:每次在未排序的数组序列中选择最小的对象放在数组前面。
最小的放在第一位,第二小的放在第二位.......