C/C++经典排序问题,sort函数使用

news2024/9/24 5:24:40

目录

1. 前言

2. 正文

2.1 问题

2.2 解决办法

2.2.1 思路

2.2.2 代码实现

2.2.3 测试结果

3. 备注


1. 前言

大家在学习C语言的时候,是不是经常被排序算法折磨的很难那首,其实都是但是在C++中有专门的,排序函数,而且支持自定义排序算法。下面我就带大家看看,sort函数简单的数组排序中的应用。

2. 正文

2.1 问题

题目描述:

输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。

输入格式:

5 2 -4 7 -5 -9

5 -3 -5 -7 0 -23

0

输出格式:

-9 7 -5 -4 2 
-23 -7 -5 -3 0 

看完题目之后,大家还是可以现场是写一下,必经过程和思路都是最重要的。

2.2 解决办法

2.2.1 思路

首先通过二维容器去读取元素,储存元素的数量和数据,然后进行排序,因为不符合sort默认的升序排列,因此我们需要自定已排序算法compare。注意这个函数值返回值是bool类型的,此外使用sort函数还需要包含<algorithm>算法头文件。

需要注意的是,二位容器的添加行和列的方式不一样,添加列只需要push_back(data),添加行则需要push_back(vector<data>)才可以。

2.2.2 代码实现

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

bool compare(int &data1, int &data2)
{
    if (fabs(data1) > fabs(data2))
        return true;
    else
        return false;
}
int main(int argc, char *argv[])
{
    int n, i = 0, i_temp = 0;
    int temp;
    vector<vector<int>> data_in;
    cin >> n;
    while (n)
    {
        data_in.push_back(vector<int>());
        while (n--)
        {
            cin >> temp;
            data_in[i].push_back(temp);
        }
        i++;
        cin >> n;
    }
    while (i_temp < i)
    {
        sort(data_in[i_temp].begin(), data_in[i_temp].end(), compare);
        for (int data : data_in[i_temp])
        {
            cout << data << ' ';
        }
        cout << endl;
        i_temp++;
    }
    for (auto it : data_in)
    {
        it.clear();
    }
    data_in.clear();
    return 0;
}

2.2.3 测试结果

输出结果也是符合题目中的输出结果。

3. 备注

>>>>>>

人一生会遇到很多人,没有谁是不重要的,她出现的目的都是为了使你成长。

>>>>>>

你相信什么,你就成为什么样的人。——奥普拉·温弗瑞

 >>>>>>

制作不易,且行且珍惜,点个关注支持下吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue系统获取授权平台授权码实现单点登录、注销功能

公司平台需要对接别的平台 实现单点登录 注销。简而言之&#xff0c;不需要在自己公司系统登录 统一在别的平台登录后获取到登录凭证&#xff08;授权码&#xff09; 在本公司系统实现免密登录的功能。 流程&#xff1a; 跳转授权页面和保存授权码的代码&#xff1a; hrefLog…

模型融合创新性好强!最新成果直接登顶SOTA,分分钟拿下顶会

Transformer作者创业新成果火了&#xff01;他们提出了一个70亿参数的日语数学大模型&#xff0c;直接打败700亿参数的Llama-2取得SOTA&#xff01;更牛的是&#xff0c;得出这样的模型无需任何梯度训练&#xff0c;所需计算资源大大减少。 这种炸裂的成果得益于模型融合&…

C++模板(初识)

一、泛型编程 我们平时写交换函数的时候&#xff0c;会这样写&#xff1a; //交换两个int类型变量 void Swap(int& left, int& right) {int temp left;left right;right temp; } //交换两个double类型变量 void Swap(double& left, double& right) {doubl…

随着人们网络安全意识提高,软件架构设计与评估也成为重中之重

目录 案例 【题目】 【问题 1】(13 分) 【问题 2】(12分) 【答案】 【问题 1】答案 【问题 2】答案 相关推荐 案例 阅读以下关于软件架构设计与评估的叙述&#xff0c;回答问题 1 和问题 2。 【题目】 某电子商务公司为正更好地管理用户&#xff0c;提升企业销售业绩&…

Linux中Ubuntu系统安装Windows得字体

背景 安装了geoserver 然后geoserver中需要用到微软雅黑字体 所以需要安装一下Linux系统安装Windows中的字体 创建字体目录 cd /usr/share/fonts/ mkdir winfont在Windows找到对应字体 C:\Windows\Fonts 复制该字体到桌面 Linux系统中上传字体 roottest-server03:/usr/sha…

一键解决物流追踪难题:批量查询工具助力电商运营

探索固乔科技&#xff0c;解锁高效物流查询新纪元&#xff01;固乔快递批量查询助手&#xff0c;一款专为电商、物流从业者及自媒体人打造的神器&#xff0c;让繁琐的物流追踪变得轻松快捷。 想象一下&#xff0c;万级单号批量导入&#xff0c;仅需5分钟&#xff0c;所有物流动…

如何利用mHand Pro动捕数据手套连接虚拟与现实?

数据手套作为虚拟现实中的一种交互动捕设备&#xff0c;能够模拟真人手部的动作和感知反馈&#xff0c;实现人机交互的效果。随着虚拟现实技术的不断发展&#xff0c;数据手套也在不断地改进和升级。 mHand Pro是一款由拥有多年经验的惯性动作捕捉技术团队广州虚拟动力研发的数…

第142天: 内网安全-权限维持黄金白银票据隐藏账户C2 远控RustDeskGotoHTTP

案例一&#xff1a; 内网域&单机版-权限维持-基于用户-隐藏用户 项目下载地址&#xff1a; GitHub - wgpsec/CreateHiddenAccount: A tool for creating hidden accounts using the registry || 一个使用注册表创建隐藏帐户的工具 用这个工具的话在域中会把它加入adminis…

会声会影哪个版本最好用?

会声会影哪个版本最好用? 会声会影2023这个版本是最受欢迎的&#xff0c;它为多数用户提供了稳定且强大的功能。以下是关于为什么这个版本最好用的 一、功能丰富 会声会影X系列版本拥有从视频剪辑、音频编辑到特效添加等全方位的功能。用户可以轻松完成视频的录制、剪辑、转…

SAP ABAP 程序迁移工具 SAPLINK ABAP GIT

SAP ABAP 程序迁移工具 SAPLINK ABAP GIT 1. saplink 这个工具功能挺强大的. 但是使用起来有点麻烦, 需要针对不同的开发对象导入不同的插件.才能处理特定的对象. 而且版本还在不断变化. saplink 项目地址&#xff1a;https://github.com/sapmentors/SAPlink saplink plugin…

鸿蒙轻内核M核源码分析系列六 任务及任务调度(1)任务栈

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 持续更新中…… 继续分析鸿蒙轻内核源码&#xff0c;我们本文开始要分析下任务及任务调度模块。首先&#xff0c;我们介绍下任务栈的基础概念。任务栈是高…

SpringBoot整合Minio及阿里云OSS(配置文件无缝切换)

SpringBoot整合Minio及阿里云OSS 文章目录 SpringBoot整合Minio及阿里云OSS1.Minio安装测试1.Docker安装启动容器 2.创建bucket3.上传文件修改权限 2.SpringBoot整合Minio及阿里云OSS1.公共部分抽取2.Minio配置整合1.添加pom依赖2.添加配置文件3.操作接口实现 3.阿里云OSS配置整…

Class4——Esp32|Thonny两种方式同过电脑控制LED灯,路由器与电脑自带热点连接ESP32

上一节我们通过路由器和设备创建了连接&#xff0c;不懂可按上节配置 Class3——Esp32|Thonny——网络连接主机-wifi连接&#xff08;源代码带教程&#xff09;-CSDN博客文章浏览阅读57次。Esp32|Thonny网络连接主机-wifi连接&#xff08;源代码带教程&#xff09;https://blo…

免费开源的低代码表单FormCreate安装教程,支持可视化设计,适配移动端

低代码表单FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。它支持 6 个 UI 框架&#xff0c;适配移动端&#xff0c;并且支持生成任何 Vue 组件。内置 20 种常用表单组件和自定义组件&#xff0c;再复杂的表单都可以轻松搞定 源码…

网页时装购物:Spring Boot框架的创新应用

第2章相关技术 2.1 B/S架构 B/S结构的特点也非常多&#xff0c;例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量&#xff0c;通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量&#xff0c;这些功能的操作主要是由服务器来进行控制的…

时尚购物革命:Spring Boot技术在网页时装系统中的应用

第1章 绪论 1.1背景及意义 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们生活水平的不断提高&#xff0c;日常生活中人们对时装购物系统方面的要求也在不断提高&#xff0c;喜欢购物的人数更是不断增加&#xff0c;使得时装购物系统的开发成为必需而且紧迫的…

Rspack 1.0 发布了!

文章来源&#xff5c;Rspack Team 项目地址&#xff5c;https://github.com/web-infra-dev/rspack Rspack 是基于 Rust 编写的下一代 JavaScript 打包工具&#xff0c; 兼容 webpack 的 API 和生态&#xff0c;并提供 10 倍于 webpack 的构建性能。 在 18 个月前&#xff0c;我…

深度学习 --- VGG16能让某个指定的feature map激活值最大化图片的可视化(JupyterNotebook实战)

VGG16能让某个指定的feature map激活值最大化图片的可视化 在前面的文章中&#xff0c;我用jupyter notebook分别实现了&#xff0c;预训练好的VGG16模型各层filter权重的可视化和给VGG16输入了一张图像&#xff0c;可视化VGG16各层的feature map。深度学习 --- VGG16卷积核的可…

说一下场外的伦敦银交易的技巧

在很多讨论伦敦银交易技巧的文章中&#xff0c;一上来就介绍各种交易指标、K线信号等等&#xff0c;这种开门见山的方式很直接也很方便&#xff0c;但也容易忽略了一些场外的技巧&#xff0c;下面我们就来讨论一下场外的关于伦敦银交易的技巧。 何为场外的技巧呢&#xff1f;场…

Java进阶13讲__第十讲__精简

字节流 字节输入流&#xff1a;FileInputStream&#xff08;原始流/低级流&#xff09; 字节缓冲流&#xff1a;BufferedInputStream&#xff08;包装流/处理流&#xff09; 参数是"低级流" 字节输入流/缓冲流常用格式 byte[] arr new byte[1024];//字节流 int l…