算法2:选择排序
1、选择排序就是一种将数据充分对比得到的排序,把第一个数据和后面的数据相比较,要是找到更小的,互换两者位置,然后进行下一位,直到运行完所有元素为止
2、代码实现比较多样化
-
这个是两个嵌套实现的方法:
class Solution {
public:
void swap(int& a,int& b)
{
int temp= a;
a=b;
b=temp;
}
vector<int> choosesort(vector<int>&v)
{
int min=-1;
for(int i=0;i<v.size();i++)
{
min=i;
for(int j=i+1;j<v.size();j++)
{
if(v[min]>=v[j])
{
min=j;
}
}
swap(v[min],v[i]);
}
return v;
}
};
-
这个是使用寻找最小值之后的排序(其实最后还是思路1的想法,只是看着更加高大上)
class Solution
{
public:
int findsmall(vector<int>v,int a)//寻找最小值
{
int small=a;
for(int i=a+1;i<v.size();i++)
{
if(v[small]>v[i])
{
small=i;
}
}
return small;
}
void swap(int& a,int& b)//交换两个值
{
int temp=a;
a=b;
b=temp;
}
vector<int> choosesort(vector<int>& nums)
{
for(int i=0;i<nums.size();i++)
{
int index=findsmall(nums,i);
swap(nums[i],nums[index]);
}
return nums;
}
};

浙公网安备 33010602011771号