思路:从未排序的序列中,找到最小的元素,放到序列的起始位置,
再从剩下没排序的里面,找到最小的,放到已经排序的末尾。
原地操作几乎是选择排序的唯一优点,当空间复杂度要求较高时,可以考虑选择排序;实际适用的场合非常罕见。
# include <stdio.h>
#include <Eigen/Dense>
#include <iostream>
using namespace std;
using namespace Eigen;
int main(){
cout<<"Insert Sorting: "<<endl;
VectorXd v(8);
v<<4,2,1,5,3,2,11,9;
for(int i=0;i<8;i++){
int tmp=i;
for(int j=i+1;j<8;j++){
if(v(j)<v(tmp))
{
tmp=j;
}
}
if(tmp!=i){
int tmp1=v(tmp);
v(tmp)=v(i);
v(i)=tmp1;
}
}
cout<<v<<endl;
return 0;
}