常用的排序算法

sort

功能描述:对容器内元素进行排序

函数原型

cpp 复制代码
sort(iterator beg,iterator end,_Pred);
//按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置
//beg 开始迭代器
//end 结束迭代器
//_Pred 谓词
cpp 复制代码
#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <algorithm>

void printVector(int val)
{
    cout<<val<<" ";
}
class MyCompare{
    public:
    bool operator()(int val1,int val2){
        return val1>val2;

    }

};

void test01()
{
    vector<int> v;
    v.push_back(10);
    v.push_back(30);
    v.push_back(50);
    v.push_back(20);
    v.push_back(40);

    //利用sort进行升序
    sort(v.begin(),v.end(),MyCompare());
    for_each(v.begin(),v.end(),printVector);
}

int main()
{
    test01();
}

random_shuffle

功能描述:洗牌 指定范围内的元素随机调整次序

函数原型:

cpp 复制代码
random_shuffle(iterator beg,iterator end);
//指定范围内随机调整元素次序
//beg 开始迭代器
//end 结束迭代器
cpp 复制代码
#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <algorithm>
#include <ctime>

void printVector(int val)
{
    cout<<val<<" ";
}
class MyCompare{
    public:
    bool operator()(int val1,int val2){
        return val1>val2;

    }

};

void test01()
{
    vector<int> v;
    for(int i=0;i<10;i++)
    {
        v.push_back(i);
    }

    
    random_shuffle(v.begin(),v.end());
    for_each(v.begin(),v.end(),printVector);
}

int main()
{
    //由于我们的时间一直在改变,因此其随机数更加的随机化了
    srand((unsigned int)time(NULL));
    test01();
}

merge

功能描述:两个容器合并,并存储到另一个容器中

函数原型:

cpp 复制代码
merge(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest);
//dest目标容器开始迭代器

reverse

功能描述:将容器内的元素进行反转

函数原型

cpp 复制代码
reverse(iterator beg,iterator end);
//反转指定范围内的元素
//beg开始迭代器
//end结束迭代器
相关推荐
练习时长一年1 小时前
LeetCode热题100(二叉树的最大路径和)
算法·leetcode·职场和发展
2401_872418788 小时前
算法入门:数据结构-堆
数据结构·算法
xwz小王子9 小时前
手术机器人登上Science Robotics:2毫米纤细手臂,从3厘米切口完成腰椎神经减压
算法·机器人
黎阳之光10 小时前
视频孪生智护供水生命线:黎阳之光赋能医疗与园区水务高质量升级
运维·物联网·算法·安全·数字孪生
Black蜡笔小新10 小时前
自动化AI算法训练服务器DLTM制造业AI质检工作站助力制造业实现AI智检
人工智能·算法·自动化
嵌入式小能手10 小时前
飞凌嵌入式ElfBoard-进程间的通信之命名管道
linux·服务器·算法
啦哈拉哈11 小时前
Leetcode题解记录-hot100(81-100)
算法·leetcode·职场和发展
csdn_aspnet11 小时前
Java 霍尔分区算法(Hoare‘s Partition Algorithm)
java·开发语言·算法
诸葛务农11 小时前
道路行驶条件下电动汽车永磁电机的有效使用寿命及永磁体的失效和回收再利用(下)
java·开发语言·算法
snow@li11 小时前
AI:理解 大数据、算法、算力、电力、生成式AI、token 之间的关系
大数据·人工智能·算法