1.简单选择排序
【算法步骤】
①将第一个作为最小值,并将下标赋值给k
②在后面找出比它小的值,赋为最小值,并将下标赋值给k,一直到列表结束,然后交换。
③重复①②
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void SelectSort(vector<int>& v)
{
int i , j;
for (i = 0; i < v.size(); i++) //i表示列表的第几个数,
{
int k = i; //k表示一路上的最小值的坐标,这种思维学到起,各个变量做各个的事
for (j = i + 1; j < v.size(); j++) //j表示比的数
{
if (v[i]>v[j])//找到小的,好交换
{
k = j; //赋值给k,还没比完,j还得继续比,走完继续的路
}
}
//比完了,跳出循环,来个判断,进行交换
if (i != k)
{
swap(v[i], v[k]);
}
}
}
int main()
{
vector<int> v{ 0,-1,100,87,200,4 };
SelectSort(v);
for (auto x : v)
cout << x << ' ';
system("pause");
return 0;
}
总结:每个变量有不同作用,最好不要拿来用了这儿,哪儿又去用,会很乱