跳至主要內容

选择排序

张威小于 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]);
		}
	}
}