#include <iostream>
#include <vector>
using namespace std;
/**
* 插入排序
* 首先找到数组中最小的元素和第一个元素进行交换
* 再次找到剩下的数组元素中最小的元素和第二个元素进行交换
* 以此类推
*
* 算法性能:1.运行时间与输入无关,
* 2.数据移动是最少的
* 对于N个元素的数组,选择排序大约需要(N^2)/2次比较和N次交换。
* @param nums
*/
void SelectionSort(vector<int>& nums){
for(int i = 0;i < nums.size();i++){
int minIndex = i; //最小元素索引
for(int j = i;j < nums.size();j++){
if(nums[minIndex] > nums[j]){
minIndex = j;
}
}
int temp = nums[i];
nums[i] = nums[minIndex];
nums[minIndex] = temp;
}
}
int main() {
int a[] = {7,6,5,4,3,2,1};
vector<int> nums(a,a+7);
SelectionSort(nums);
for(int i = 0;i < nums.size();i ++){
cout<<nums[i]<<endl;
}
return 0;
}
标签:minIndex,nums,int,元素,选择,++,排序,size
From: https://www.cnblogs.com/poteitoutou/p/17087640.html