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

2024-09-06 18:04

本文主要是介绍C/C++经典排序问题,sort函数使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

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;elsereturn 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. 备注

>>>>>>

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

>>>>>>

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

 >>>>>>

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

这篇关于C/C++经典排序问题,sort函数使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142733

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中