algorithm常用函数

简介: algorithm常用函数

stable_sort()
稳定排序算法,相同值不改变位置

#include <iostream>
#include <algorithm>
using namespace std;

int a[5]={
   3,5,4,2,6};
int main()
{
   
    stable_sort(a, a+5);//前闭后开区间 
    for (int i=0; i<5; i++)
        cout<<a[i]<<" ";
    return 0;
}

reverse(begin, end) 反转一个区间的元素, 前闭后开区间
swap(&num1, &num2) 交换两个数的位置
min(num1, num2)、min_element(begin, end) 返回两个数或一个区间内的最小的数
max(num1, num2)、max_element(begin, end) 返回两个数或一个区间内的最大的数
__gcd(num1, num2) 求两个数的最大公约数
lower_bound() 返回指向第一个大于等于给定值的元素的迭代器
upper_bound() 返回指向第一个大于给定值的元素的迭代器

next_permutation用于求当前排列的下一个排列情况

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
   
    int a[5]={
   1,2,3,4};

    for (int i=1; i<=24; i++){
   
        printf("%d%d%d%d\n", a[0],a[1],a[2],a[3]);
        next_permutation(a, a+4);
    }

    do{
   
        for (int i=0; i<4; i++)
            printf("%d", a[i]);
        printf("\n");
    }while (next_permutation(a, a+4));
    return 0;
}

unique()被包含在头文件algorithm中
作用是去除数组中相邻的重复元素(必须相邻),一般排序后使用。返回结果是去重后最后一个数的地址。
需要注意的是,这里的去重只是把后面的元素替换了前面重复的元素,它并没有把后面的元素的空间删除掉。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

int a[10]={
   1,2,3,4,4,5,6,4,3,5};
int main()
{
   
    for (int i=0; i<10; i++)
        printf("%d ", a[i]);
    printf("\n\n");

    sort(a, a+10);
    for (int i=0; i<10; i++)
        printf("%d ", a[i]);
    printf("\n\n");

    int n=unique(a, a+10)-a;
    for (int i=0; i<n; i++)
        printf("%d ", a[i]);
    printf("\n\n");

    for (int i=0; i<10; i++)
        printf("%d ", a[i]);
    return 0;
}

/*
输出结果为:
1 2 3 4 4 5 6 4 3 5

1 2 3 3 4 4 4 5 5 6

1 2 3 4 5 6

1 2 3 4 5 6 4 5 5 6
*/
相关文章
|
存储 关系型数据库 MySQL
MySQL 数据库详解与实践指南
本文全面解析MySQL数据库核心概念、存储引擎、数据类型及高级特性,涵盖索引优化、查询性能提升、安全配置、备份恢复与主从复制等实战技巧,助你掌握MySQL高效应用与运维最佳实践。
522 1
|
9月前
|
数据采集 安全 API
高精度IP定位:准确性提升与数据优化全攻略
使用IP数据云、IPinfo、IPnews这类专业的IP数据服务平台检测,不仅可以查询IP,更是一个网络风险识别仪器。对于跨境电商、安全研究人员,或者想提高上网隐私的人来说,都挺值得收藏学习。
高精度IP定位:准确性提升与数据优化全攻略
|
10月前
|
安全 算法 网络安全
高防CDN可以防御DDOS攻击吗
总结起来说,在面对日益严重的网络安全威胁时,高防CDN是一个非常有效且必要的工具。它不仅可以提升网站访问速度、改善用户体验,并且还能有效地抵御DDoS等多种形式网络攻击。
2485 13
|
11月前
|
机器学习/深度学习 人工智能 监控
拔俗AI智能营运分析助手软件系统:企业决策的"数据军师",让经营从"拍脑袋"变"精准导航"
AI智能营运分析助手打破数据孤岛,实时整合ERP、CRM等系统数据,自动生成报表、智能预警与可视化决策建议,助力企业从“经验驱动”迈向“数据驱动”,提升决策效率,降低运营成本,精准把握市场先机。(238字)
348 0
|
8月前
|
Linux 数据安全/隐私保护
Kali Linux镜像安装全流程!手把手教你从镜像到开机(附避坑指南)
本指南详解Kali Linux系统安装全流程:从下载镜像、用Rufus制作U盘启动盘,到BIOS启动设置、中文界面安装配置(含分区、root密码、GRUB引导),再到首次登录与必备的`apt update && apt full-upgrade`系统更新,步骤清晰,新手友好。(239字)
4279 2
|
存储 Docker 容器
docker中挂载现有目录作为数据卷
【10月更文挑战第14天】
526 1
|
人工智能 机器人 Serverless
不用一行代码,如何10分钟快速打造AI助手?
推荐免费下载《10分钟打造专属AI助手》电子书,助力快速搭建AI客服系统。 本文介绍了如何在10分钟内构建能主动提问的智能导购系统,提升客户体验。通过阿里云平台,无需编码即可创建具备大模型能力的AI机器人,实现7x24小时商品推荐与客户服务。文中详细描述了从创建函数计算应用、访问示例网站到验证智能导购效果的全过程,并提供了关键代码示例。此外,还介绍了如何将智能导购集成到生产环境的方法,包括修改知识库和源码以适配具体产品。
1754 19
|
存储 C#
.NET使用CsvHelper快速读取和写入CSV文件
优秀项目和框架精选 该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。
372 0
|
人工智能
通义千问
通义千问
6480 4
|
JavaScript
js判断图片是否加载完成
js判断图片是否加载完成
578 0

热门文章

最新文章