bool PrintVector(vector<int> vec)
{
for (int i = 0; i < vec.size();i++)
{
cout << vec[i] << endl;
}
return true;
}


bool swapVal(int& m ,int& n)
{
int temp = 0;
temp = m;
m = n;
n = temp;
return true;
}

//选择排序
vector<int> SelectSort(vector<int>& vec)
{
int vec_size = vec.size(); //vec大小
int i = 0;
int min_val = vec[0]; //先设置vec[0]为最小值
int min_pos = 0;
for (i = 0; i <vec_size; i++)
{
for (int j = i+1;j<vec_size;j++)
{
if (vec[j]<vec[i])
{
swapVal(vec[j],vec[i]); //交换
}
}
}
PrintVector(vec);
return vec;
}

时间复杂度O(n),空间复杂度O(1)

  • 测试运行代码
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> vec;
vec.push_back(12);
vec.push_back(13);
vec.push_back(123);
vec.push_back(11);
vec.push_back(19);
SelectSort(vec);
system("pause");
return 0;
}
  • 运行结果: