当前位置: 首页 > news >正文

【c++STL常见排序算法sort,merge,random_shuffle,reverse】

文章目录

      • C++ STL 常见排序算法详解
        • 1. `sort` 算法
        • 2. `merge` 算法
        • 3. `random_shuffle` 算法
        • 4. `reverse` 算法

C++ STL 常见排序算法详解

1. sort 算法
  • 功能sort 用于对容器内的元素进行升序排序。
  • 示例代码
    #include <iostream>
    #include <algorithm>
    #include <vector>int main() {std::vector<int> numbers = {4, 2, 7, 1, 5};std::sort(numbers.begin(), numbers.end());for (int num : numbers) {std::cout << num << " ";}return 0;
    }
    
  • 原理sort 基于快速排序算法实现,具有 O(n log n) 的时间复杂度。
2. merge 算法
  • 功能merge 用于合并两个已排序的序列到一个新序列。
  • 示例代码
    #include <iostream>
    #include <algorithm>
    #include <vector>int main() {std::vector<int> list1 = {1, 3, 5};std::vector<int> list2 = {2, 4, 6};std::vector<int> mergedList(list1.size() + list2.size());std::merge(list1.begin(), list1.end(), list2.begin(), list2.end(), mergedList.begin());for (int num : mergedList) {std::cout << num << " ";}return 0;
    }
    
  • 原理merge 通过合并两个有序序列来创建一个新的有序序列,具有线性时间复杂度。
3. random_shuffle 算法
  • 功能random_shuffle 用于随机打乱容器中元素的顺序。
  • 示例代码
    #include <iostream>
    #include <algorithm>
    #include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};std::random_shuffle(numbers.begin(), numbers.end());for (int num : numbers) {std::cout << num << " ";}return 0;
    }
    
  • 原理random_shuffle 使用随机数生成器对容器中的元素进行重新排列。
4. reverse 算法
  • 功能reverse 用于反转容器中元素的顺序。
  • 示例代码
    #include <iostream>
    #include <algorithm>
    #include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};std::reverse(numbers.begin(), numbers.end());for (int num : numbers) {std::cout << num << " ";}return 0;
    }
    
  • 原理reverse 将容器中的元素逆序排列。

相关文章:

【c++STL常见排序算法sort,merge,random_shuffle,reverse】

文章目录 C STL 常见排序算法详解1. sort 算法2. merge 算法3. random_shuffle 算法4. reverse 算法 C STL 常见排序算法详解 1. sort 算法 功能&#xff1a;sort 用于对容器内的元素进行升序排序。示例代码&#xff1a;#include <iostream> #include <algorithm>…...

STM32/N32G455国民科技芯片驱动DS1302时钟---笔记

这次来分享一下DS1302时钟IC&#xff0c;之前听说过这个IC&#xff0c;但是一直没搞过&#xff0c;用了半天时间就明白了原理和驱动&#xff0c;说明还是很简单的。 注&#xff1a;首先来区分一下DS1302和RTC时钟有什么不同&#xff0c;为什么不直接用RTC呢&#xff1f; RTC不…...

基于PLC的污水厌氧处理控制系统(论文+源码)

1. 系统设计 污水厌氧由进水系统通过粗格栅和清污机进行初步排除大块杂质物体以及漂浮物等&#xff0c;到达除砂池中。在除砂池系统中细格栅进一步净化污水厌氧中的细小颗粒物体&#xff0c;将污水厌氧中的细小沙粒滤除后进入氧化沟反应池。在该氧化沟系统中进行生化处理&…...

Unity之NetCode多人网络游戏联机对战教程(9)--NetworkAnimator组件

文章目录 前言NetworkAnimatorAnimator的Trigger属性服务器权威模式&#xff08;Server Authoritative Mode&#xff09;客户端权威模式 (Owner Authoritative Mode)学习文档 前言 这个组件是NetCode常用的组件之一&#xff0c;NetworkAnimator跟NetworkTransform一样&#xf…...

iceoryx之Roudi

目录...

.Net(C#)常用转换byte转uint32、byte转float等

1、byte转String Encoding.ASCII.GetString(byte[]); 2、base64string转byte byte[]Base64Decoder.Decoder.GetDecoded(string); 3、byte转UInt16 方法一 (UInt16)(bytes[0] * 256 bytes[1]) 方法二 (UInt16)((bytes[0] << 8) | bytes[1]); 方法三 字节序要对…...

windows快捷方式图标变成空白

今天突然有客户说应用程序快捷方式图标变成了空白&#xff0c;就研究了一下&#xff0c;网上找了一下很多都说是什么图标缓存有问题&#xff0c;试过之后发现并不能解决问题。 然后发现用户的文件上都一把黄色的小锁的标志&#xff0c;查了一下说是文件属性里面设置加密之后就会…...

【Linux系统编程十九】:(进程通信)--匿名管道/模拟实现进程池

【Linux系统编程十九】&#xff1a;匿名管道原理/模拟实现进程池 一.进程通信理解二.通信实现原理三.系统接口四.五大特性与四种情况五.应用场景--进程池 一.进程通信理解 什么是通信&#xff1f; 通信其实就是一个进程想把数据给另一个进程&#xff0c;但因为进程具有独立性…...

【全网首发】2023年NOIP真题

目录 前言 真题 结尾 前言 NOIP题目了解一下&#xff0c;后续有可能会出讲解&#xff0c;题目全部来自于洛谷 真题 第一题&#xff1a;词典 第二题&#xff1a;三值逻辑 第三题&#xff1a;双序列扩展 第四题&#xff1a; 天天爱打卡 结尾 大家可以把你的预期分数打在评论…...

【Linux网络】从原理到实操,感受PXE无人值守自动化高效批量网络安装系统

一、PXE网络批量装机的介绍 1、常见的三种系统安装方式 2、回顾系统安装的过程&#xff0c;了解系统安装的必要条件 3、什么是pxe 4、搭建pxe的原理 5、Linux的光盘镜像中的isolinux中的相关文件学习 二、关于实现PXE无人值守装机的四大文件与五个软件的对应关系详解 5个…...

Pandas+Matplotlib 数据分析

利用可视化探索图表 一、数据可视化与探索图 数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质&#xff0c; 以及数据间或属性间的关系&#xff0c;可以轻易地让人看图释义。用户通过探索图&#xff08;Exploratory Graph&#xff09;可以了解数据的…...

k8s ingress高级用法一

前面的文章中&#xff0c;我们讲述了ingress的基础应用&#xff0c;接下来继续讲解ingress的一些高级用法 一、ingress限流 在实际的生产环境中&#xff0c;有时间我们需要对服务进行限流&#xff0c;避免单位时间内访问次数过多&#xff0c;常用的一些限流的参数如下&#x…...

C语言--从键盘输入10个数字放在数组中,并输出

用scanf读取数字的时候要注意&#xff0c;可以输入一个数字&#xff0c;按一下回车&#xff0c;输入一个数字&#xff0c;按一下回车&#xff0c;也可以一次性输入完10个数据。&#xff08;中间可以用空格隔开&#xff0c;系统会自动识别&#xff09; 输出一:每按下一个数字&am…...

SSL加密

小王学习录 今日摘录前言HTTP + SSL = HTTPSSSL加密1. 对称加密2. 非对称加密 + 对称加密3. 证书今日摘录 但愿四海无尘沙,有人卖酒仍卖花。 前言 SSL表示安全套接层,是一个用于保护计算机网络中数据传输安全的协议。SSL通过加密来防止第三方恶意截取并篡改数据。在实际应用…...

一个美观且功能丰富的 .NET 控制台应用程序开源库

推荐一个美观且功能丰富的 .NET 控制台应用程序开源库&#xff0c;从此告别黑漆漆的界面。 01 项目简介 Spectre.Console 是一个开源的 .NET 库&#xff0c;用于创建美观、功能丰富的控制台&#xff08;命令行&#xff09;应用程序。它提供了一组易于使用的 API&#xff0c;…...

DispatcherSynchronizationContext and Dispatcher

https://www.cnblogs.com/liangouyang/archive/2008/11/20/1337907.html SynchronizationContext提供一个自由线程的同步上下文&#xff0c;一个常用的用法是把UI线程的同步上下文保存起来&#xff0c;传给另一个线程&#xff0c;因为UI只能再UI线程中操作&#xff0c;在另外一…...

java类型属性set方法无法被赋值

前言 遇到一个基础的问题 方法设置属性值 失败 问题代码 有个内部类的User对象 分别使用 方式一和 方式二 设置User的属性值 发现方式一的属性并不能被设置成功 可以自行测试下 public class Test{public static void main(String[] args) {#方式一 User user new User();u…...

【2】SM2验签工具和RSA验签工具

0X01 前言 最近看了好多验签工具&#xff0c;感觉不是很好用&#xff0c;就自己造了个。 0x02 工具功能介绍 对SM2算法进行验签和RSA算分进行验签&#xff0c;签名值可以是base64&#xff0c;也可以是十六进制。 兼容各种输入。 0x03 工具使用 RSA 验签 SM2 验签 0x04 工具…...

Python (十一) 迭代器与生成器

迭代器 迭代器是访问集合元素的一种方式&#xff0c;可以记住遍历的位置的对象 迭代器有两个基本的方法&#xff1a;iter() 和 next() 字符串&#xff0c;列表或元组对象都可用于创建迭代器 字符串迭代 str1 Python str_iter iter(str1) print(next(str_iter)) print(next(st…...

通过maven命令手动上传jar私服Nexus

Nexus3在界面上传组件时报&#xff1a; Ext.JSON.decode(): Youre trying to decode an invalid JSON String: 查找了很多资料&#xff0c;都没有解决。有哪位大佬知道的评论告诉一下&#xff0c;万分感谢。 于是换成maven命令上传&#xff1a; mvn deploy:deploy-file -Dgr…...

基于BLE与CircuitPython的无线8-bit音乐合成器DIY全攻略

1. 项目概述与核心思路想不想亲手做一个能揣在口袋里&#xff0c;随时随地弹奏出复古8-bit音乐的小玩意儿&#xff1f;不是那种手机App模拟的&#xff0c;而是实实在在的、有物理按键、能无线连接、还会发光的小合成器。今天分享的这个项目&#xff0c;就是基于两块小巧但功能强…...

如何高效管理命令历史:yargs readline功能的终极指南

如何高效管理命令历史&#xff1a;yargs readline功能的终极指南 【免费下载链接】yargs yargs the modern, pirate-themed successor to optimist. 项目地址: https://gitcode.com/gh_mirrors/ya/yargs 在现代命令行工具开发中&#xff0c;提供流畅的用户交互体验至关…...

多尺度地理加权回归(MGWR)终极指南:从入门到实战的完整教程

多尺度地理加权回归(MGWR)终极指南&#xff1a;从入门到实战的完整教程 【免费下载链接】mgwr Multiscale Geographically Weighted Regression (MGWR) 项目地址: https://gitcode.com/gh_mirrors/mg/mgwr 面对复杂多变的空间数据&#xff0c;传统的地理加权回归(GWR)常…...

免费Windows风扇控制神器:FanControl让你的电脑静音又凉爽

免费Windows风扇控制神器&#xff1a;FanControl让你的电脑静音又凉爽 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendin…...

科技早报晚报|2026年5月15日:本地大表分析、零 ETL 远程搜索与去中心化监控,今晚更值得跟进的 3 个技术机会

科技早报晚报&#xff5c;2026年5月15日&#xff1a;本地大表分析、零 ETL 远程搜索与去中心化监控&#xff0c;今晚更值得跟进的 3 个技术机会 一句话导读&#xff1a;上午那篇我已经写了空间感知、设备实验室和视频代理&#xff0c;今晚这轮我刻意换到另一条更贴近真实工程预…...

5分钟学会用ASCII字符绘制专业流程图:告别复杂设计软件

5分钟学会用ASCII字符绘制专业流程图&#xff1a;告别复杂设计软件 【免费下载链接】asciiflow ASCIIFlow 项目地址: https://gitcode.com/gh_mirrors/as/asciiflow 你是否曾为绘制简单的流程图而打开臃肿的设计软件&#xff1f;或者需要在代码注释中嵌入清晰的流程说明…...

零门槛云端实时物体识别:基于Google Colab与MobileNet V2的实践指南

1. 项目概述&#xff1a;零门槛体验云端实时物体识别想亲手体验一下人工智能的“眼睛”是如何看世界的吗&#xff1f;物体识别&#xff0c;这个听起来高深莫测的技术&#xff0c;其实离我们并不遥远。它就像是给计算机装上了一套视觉系统&#xff0c;让它能像我们一样&#xff…...

JSON Lint for PHP:让JSON验证不再是一场噩梦

JSON Lint for PHP&#xff1a;让JSON验证不再是一场噩梦 【免费下载链接】jsonlint JSON Lint for PHP 项目地址: https://gitcode.com/gh_mirrors/jso/jsonlint 你是否曾因一个JSON格式错误而花费数小时调试&#xff1f;是否在接收外部API数据时&#xff0c;因为格式不…...

Python量化交易框架解析:从数据到实盘的完整实现

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“ZJHuang915/PythonQuantTrading”。光看名字&#xff0c;很多朋友可能就明白了&#xff0c;这是一个用Python做量化交易的代码仓库。我花了点时间把整个项目翻了一遍&#xff0c;发现它不是一个简单…...

OLAP引擎全景图鉴:从架构原理到场景适配,深度解析Impala/Druid/Presto/Kylin/ClickHouse的选型之道

1. OLAP技术全景解析&#xff1a;从基础概念到架构分类 当你打开手机查看每日步数统计&#xff0c;或是浏览电商平台的年度消费报告时&#xff0c;背后支撑这些数据分析的正是OLAP技术。OLAP&#xff08;在线分析处理&#xff09;就像一位不知疲倦的数据分析师&#xff0c;能够…...