将序列分为unsorted(前)部分和sorted(后)部分,每次从取出unsorted取出值放入sorted的最前方。时间复杂度O(n^2)
代码
void selectSort(vector<int>& vec, int n) {
for (int i = 0; i < n; i++) {
int mx = i;
for (int j = i+1; j < n; j++)
mx = vec[mx]<vec[j]?j:mx;
swap(vec[mx], vec[n - 1]);
n--;
}
}