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
*/
相关文章
|
设计模式 缓存 Kubernetes
分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
有幸作为阿里云MVP提前获得了阿里云云原生团队编写的《云原生架构白皮书》,希望通过自己对于云原生的理解为开发者提供一篇观后感或者是能够参考的博文
13227 0
分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
|
4月前
|
人工智能 运维 NoSQL
机器一宕机就靠“拍脑袋”?试试知识图谱,排故快准狠!
机器一宕机就靠“拍脑袋”?试试知识图谱,排故快准狠!
277 8
|
4月前
|
存储 数据采集 监控
什么是数据中台,一文读懂数据中台核心功能
在数字化浪潮下,数据成为企业核心资产。然而,数据分散、质量参差、使用效率低等问题困扰企业发展。数据中台应运而生,作为企业的“中枢神经”,它通过整合、治理、分析和共享数据,打破信息孤岛,提升数据价值,助力企业在营销、风控、产品创新和运营等方面实现数据驱动决策。本文深入解析数据中台的概念、功能、应用场景及建设路径,帮助企业理解如何构建高效的数据能力平台,推动业务增长。
|
Cloud Native Java API
聊聊从单体到微服务架构服务演化过程
本文介绍了从单体应用到微服务再到云原生架构的演进过程。单体应用虽易于搭建和部署,但难以局部更新;面向服务架构(SOA)通过模块化和服务总线提升了组件复用性和分布式部署能力;微服务则进一步实现了服务的独立开发与部署,提高了灵活性;云原生架构则利用容器化、微服务和自动化工具,实现了应用在动态环境中的弹性扩展与高效管理。这一演进体现了软件架构向着更灵活、更高效的方向发展。
|
人工智能 Linux Docker
一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型(1)
近年来,大模型在AI领域崭露头角,成为技术创新的重要驱动力。从AlphaGo的胜利到GPT系列的推出,大模型展现出了强大的语言生成、理解和多任务处理能力,预示着智能化转型的新阶段。然而,要将大模型的潜力转化为实际生产力,需要克服理论到实践的鸿沟,实现从实验室到现实世界的落地应用。阿里云去年在云栖大会上发布了一系列基于通义大模型的创新应用,标志着大模型技术开始走向大规模商业化和产业化。这些应用展示了大模型在交通、电力、金融、政务、教育等多个行业的广阔应用前景,并揭示了构建具有行业特色的“行业大模型”这一趋势,大模型知识库概念随之诞生。
156298 30
|
存储 机器学习/深度学习 人工智能
深入浅出 AI 智能体(AI Agent)|技术干货
随着人工智能技术的发展,智能体(AI Agents)逐渐成为人与大模型交互的主要方式。智能体能执行任务、解决问题,并提供个性化服务。其关键组成部分包括规划、记忆和工具使用,使交互更加高效、自然。智能体的应用涵盖专业领域问答、资讯整理、角色扮演等场景,极大地提升了用户体验与工作效率。借助智能体开发平台,用户可以轻松打造定制化AI应用,推动AI技术在各领域的广泛应用与深度融合。
30515 1
|
自然语言处理 运维 监控
产品解读 | 敏捷版云原生PaaS场景
更丰富的云原生应用治理能力让业务快速生长,更丰富的云原生应用治理能力让业务快速生长。
1513 75
产品解读 | 敏捷版云原生PaaS场景
|
存储 算法
什么是原子操作?
【8月更文挑战第24天】
431 0
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
2442 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
C语言
C语言string库之常用字符和字符串函数详解
C语言string库之常用字符和字符串函数详解

热门文章

最新文章

下一篇
oss云网关配置