算法思想
一个拥有若干元素的序列,重复遍历序列,将其中最大(或最小)的元素找出来,按顺序放到指定位置,再将次大(或次小)元素找出来放到指定位置,直到所有元素排完。
实现步骤
以从小到大为例:
1.遍历序列,找出最小元素
2.将找出的最小元素与第一个元素互换位置
3.从第二个元素开始遍历,重复步骤1和2
源码
C/C++
void SimpleSelectionSort (std::vector<int> &vec)
{
int tmp, min_index, i, j;
for (i = 0; i < n; ++i) {
min_index = i;
for (j = i+1; j < vec.size(); ++j) {
if (vec[j] < vec[min_index]) {
min = j;
}
}
std::swap(vec[min_index], vec[i]);
}
}
Python
def swap(sequence, i