算法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;
 
 
    }
};
 

  

 
posted @ 2022-09-04 09:21  铜锣湾陈昊男  阅读(3)  评论(0)    收藏  举报