选择排序
小于 1 分钟
选择排序是给每个位置选择当前元素最⼩的
- 外循环,依次选择前N-1个位置,存放最小的数据
- 内循环,需要指定待比较数据的位置
//selectSort.h
#ifndef _SELECT_SORT_H_
#define _SELECT_SORT_H_
#include <vector>
using std::vector;
using std::swap;
void selectSort(vector<int> &nums);
#endif //_SELECT_SOTR_H_
//selectSort.cc
#include "selectSort.h"
void selectSort(vector<int>& nums) {
size_t len = nums.size();
for(int i = 0; i < len - 1; ++i) {
size_t minPos = i;
for(int j = i + 1; j < len; ++j) {
//if(nums[j] < nums[j-1]) { //error
if(nums[j] < nums[minPos]) {
minPos = j;
}
}
if(i != minPos) {
swap(nums[i], nums[minPos]);
}
}
}