排序问题上机考试刷题

排序与查找可以说是计算机领域最经典的问题,排序和查找问题在考研机试真题中经常出现。排序考点在历年机试考点中分布广泛。排序既是考生必须掌握的基本算法,又是考生

学习其他大部分算法的前提和基础。首先学习对基本类型的排序。对基本类型排序,是指对诸如整数、浮点数等计算机编程语言内置的基本类型进行排序的过程。

例题1:

排序_牛客题霸_牛客网 对输入的n个数进行排序并输出。。题目来自【牛客题霸】icon-default.png?t=N7T8http://t.cn/E9dLx5K

解析:

#include<iostream>
#include<algorithm>
using namespace std;int main()
{int n;int arr[100] = { 0 };cin >> n;for (int i = 0; i < n; i++){cin >> arr[i];}sort(arr, arr + n);for (int i = 0; i < n; i++){cout << arr[i] << " ";}cout << endl;return 0;
}

下面介绍一个非常重要的库函数sort

先来看看怎么使用,头文件需要带上#include<algorithm>

注意,sort的前两个参数是左闭右开的

sort函数默认是升序排列

如果需要设计降序或者自定义排序,那么需要设计一下comp函数返回值是bool类型

设计comp函数的原则:不发生交换的条件下返回真(true),否则返回false

关键是去寻找所有不发生交换的情况,左参数为lhs,右参数为rhs,参数的类型要取决于排序的数据类型而定。

下面通过几道例题来感受一下comp函数的设计:
整数奇偶排序_牛客题霸_牛客网输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求: 1.先输出其中的。题目来自【牛客题霸】icon-default.png?t=N7T8http://t.cn/E9glPvp思路:

分析什么情况下数据不发生交换

代码解析:

#include<algorithm>
#include<iostream>
using namespace std;bool comp(int lhs, int rhs)
{if (lhs % 2 != 0 && rhs % 2 == 0){return true;}else if (lhs % 2 != 0 && rhs % 2 != 0 && lhs > rhs){return true;}else if (lhs % 2 == 0 && rhs % 2 == 0 && lhs < rhs){return true;}else{return false;}
}
int main()
{int arr[10] = { 0 };for (int i = 0; i < 10; i++){cin >> arr[i];}sort(arr, arr + 10, comp);for (int i = 0; i < 10; i++){cout << arr[i] << " ";}cout << endl;return 0;
}

成绩排序_牛客题霸_牛客网用一维数组存储学号和成绩,然后,按成绩排序输出。。题目来自【牛客题霸】icon-default.png?t=N7T8http://t.cn/E9d3ysv

代码解析:

#include<iostream>
#include<algorithm>
using namespace std;struct Student
{int grade;//成绩int id;//学号
};
bool comp(Student lhs, Student rhs)
{if (lhs.grade < rhs.grade){return true;}else if (lhs.grade == rhs.grade && lhs.id < rhs.id){return true;}else{return false;}
}
int main()
{Student arr[100];//定义一个student类型的数组int n;cin >> n;for (int i = 0; i < n; i++){cin >> arr[i].id >> arr[i].grade;//先输入学号,再输入成绩}sort(arr, arr + n, comp);for (int i = 0; i < n; i++){cout << arr[i].id << " " << arr[i].grade;cout << endl;}return 0;
}

成绩排序_牛客题霸_牛客网查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,。题目来自【牛客题霸】icon-default.png?t=N7T8http://t.cn/E9gyHM1

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;struct Student
{string name;//姓名int grade;//成绩int num;//录入顺序
};
bool comp1(Student lhs, Student rhs)
{//降序排列if (lhs.grade > rhs.grade){return true;}else if (lhs.grade == rhs.grade && lhs.num < rhs.num){return true;}else{return false;}
}
bool comp2(Student lhs, Student rhs)
{//升序排列if (lhs.grade < rhs.grade){return true;}else if (lhs.grade == rhs.grade && lhs.num < rhs.num){return true;}else{return false;}
}
int main()
{Student arr[10000];int n;while (cin >> n){int way;//判断输入的是0还是1cin >> way;for (int i = 0; i < n; i++){cin >> arr[i].name >> arr[i].grade;arr[i].num = i + 1;//表示为第几个录入的}if (way == 0){//表示成绩降序sort(arr, arr + n, comp1);}else{//表示成绩升序sort(arr, arr + n, comp2);}for (int i = 0; i < n; i++){cout << arr[i].name << " " << arr[i].grade;cout << endl;}}return 0;
}

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

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

相关文章

【C++中的STL】函数对象

函数对象 函数对象概念谓词概念 内建函数对象算术仿函数关系仿函数逻辑仿函数&#xff08;基本用不到&#xff09; 函数对象概念 重载函数调用操作符的类&#xff0c;其对象常称为函数对象&#xff0c;函数对象使用重载的()时。行为类似函数调用&#xff0c;也叫仿函数。 函数…

分析crash日志

每一天都要快乐的进步~~ 文章目录 在分析 crash 日志时&#xff0c;通常需要关注以下信息&#xff1a; 1️⃣ 错误信息&#xff1a;了解 crash 的具体错误信息&#xff0c;这有助于定位问题的根源所在。 2️⃣ 堆栈跟踪&#xff1a;查看堆栈跟踪&#xff0c;确定 crash 发生的…

4.F1 评分机器学习模型性能的常用的评估指标

F1评分作为机器学习领域中的一个综合性评价指标&#xff0c;旨在在准确率和召回率之间寻求平衡&#xff0c;进而提供对模型性能全面评估的手段。本文将深入探讨F1评分的定义、计算方法、应用领域、案例研究以及未来发展方向&#xff0c;力求为读者提供详实而全面的了解。 一.F…

C#学习笔记_StringBuilder+程序效率测试

String问题&#xff1a;当程序中进行过多字符串处理操作时&#xff0c;会在内存中产生过多垃圾信息&#xff0c;影响程序效率。 StringBuilder简介 StringBuilder为一个类&#xff0c;属于引用类型。StringBuilder与string的区别在于&#xff0c;StringBuilder对于字符串的操…

osgEarth真HelloWorld

osgEarth真HelloWorld vcpkg installtests vcpkg install osgEarth安装指南 https://docs.osgearth.org/en/latest/install.html&#xff0c; 预先设置ports/osg/portfile.cmake GL3 否则调用osg相关功能时会出现如下提示 OpenSceneGraph does not define OSG_GL3_AVAILABLE; …

语音方向精典论文品读_HuBERT

英文名称: HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units 中文名称: HuBERT&#xff1a;通过隐藏单元的屏蔽预测进行自监督语音表示学习 链接: http://arxiv.org/abs/2106.07447v1 代码: https:// github.com/pytorch/fairseq…

vertica10.0.0单点安装_ubuntu18.04

ubuntu的软件包格式为deb&#xff0c;而rpm格式的包归属于红帽子Red Hat。 由于项目一直用的vertica-9.3.1-4.x86_64.RHEL6.rpm&#xff0c;未进行其他版本适配&#xff0c;而官网又下载不到vertica-9.3.1-4.x86_64.deb&#xff0c;尝试通过alian命令将rpm转成deb&#xff0c;但…

盘古信息IMS OS 数垒制造操作系统+ 产品及生态部正式营运

启新址吉祥如意&#xff0c;登高楼再谱新篇。2024年1月22日&#xff0c;广东盘古信息科技股份有限公司新办公楼层正式投入使用并举行了揭牌仪式&#xff0c;以崭新的面貌、奋进的姿态开启全新篇章。 盘古信息总部位于东莞市南信产业园&#xff0c;现根据公司战略发展需求、赋能…

交叉熵损失函数求导与Softmax函数求导

交叉熵损失函数求导与Softmax函数求导 前情提要 交叉熵损失函数 对Softmax函数求导 对交叉熵损失函数求导 前情提要 在做单分类的时候&#xff0c;一般模型的最后一层是线性层Linear做分类器&#xff0c;输出在每个标签上的logits。损失函数为交叉熵损失函数&#xff0c;会…

redis过期事件监听、可以做延时任务 第二篇(简单)

在使用redis时&#xff0c;所有的key都要设置过期时间&#xff0c;过期之后&#xff0c;redis就会把对应的key清除掉。 此方法可以监听redis的key失效&#xff0c;在失效时做一些逻辑处理 redis过期监听 不像mq有保证 不推荐用来弄需要有保证的业务 现象&#xff1a; redis …

AWS 专题学习 P12 (CloudWatch、CloudTrail、AWS Config)

文章目录 专题总览1. CloudWatch1.1 Amazon CloudWatch Metrics1.2 CloudWatch Metric Streams1.3 CloudWatch LogsCloudWatch Logs - SourcesCloudWatch Logs Metric Filter & InsightsCloudWatch Logs – S3 ExportCloudWatch Logs SubscriptionsCloudWatch Logs Aggrega…

MATLAB|【完全复现】含可再生能源和储能的区域微电网的最优运行(考虑鲁棒性和不确定性)【多阶段鲁棒调度模型】

目录 主要内容 模型研究 一、区域微网模型 二、模型优化流程​ 结果一览 下载链接 主要内容 该程序实现了一种基于可再生能源和储能的区域微电网的多阶段优化调度方法&#xff0c;该方法可以同时保证优化调度方案的鲁棒性和非预测性。模型考虑两类不确定性&…

【报错处理】ModuleNotFoundError: No module named ‘paddle.fluid‘

引言 在使用 UIE&#xff08;统一信息提取&#xff09;模型时&#xff0c;您可能会遇到错误消息 "ModuleNotFoundError: No module named paddle.fluid"。这个错误可能让人沮丧&#xff0c;但通常很容易解决。在本博客文章中&#xff0c;我将为您介绍解决此问题。 一…

卡顿监控方法

android业界各家卡顿检测工具不同&#xff0c;主要分几类&#xff1a; 注册printer callback 注册Choreographer callback MessageQueue插入空Message 字节码插桩 产品原理注册printer callback BlockCanary、BlockCanaryEx、ArgusAPM&#xff08;360&#xff09; 监听每一…

MySQL索引类型及数据结构【笔记】

1 索引类型 返回面试宝典 主键索引&#xff08;PRIMARY&#xff09;:数据列不允许重复&#xff0c;不允许为NULL&#xff0c;一个表只能有一个主键。 唯一索引&#xff08;UNIQUE&#xff09;:数据列不允许重复&#xff0c;允许为NULL&#xff0c;一个表允许多个列创建唯一索引…

C++常用总结

1、提高cin与cout效率 cin与cout效率相比于scanf与printf低下 解决方案&#xff1a; ios:sync_with_stdio(false); cin.tie(0),cout.tie(0); 2、C标准算法库algorithm max(a,b)&#xff1a;求两个数最大值min(a,b)&#xff1a;求两个数最小值abs(a,b)&#xff1a;求一个整…

AssertionError: Torch not compiled with CUDA enabled

目录 报错查看已安装的torch的版本卸载安装GPU版本的torch查看cuda版本手工安装通过pip命令手工安装。 结果更新cuda到12.1大功告成 报错 经查阅&#xff0c;这个问题是因为conda默认安装的是CPU版本的torch&#xff0c;应该使用GPU版本的。 查看已安装的torch的版本 pip li…

SpringBoot整理-数据库操作

在 Spring Boot 中进行数据库操作是一项常见的任务。Spring Boot 提供了多种方式来集成和操作数据库,使得与数据库的交互更为简便和高效。以下是在 Spring Boot 中进行数据库操作的几种主要方式: 1. Spring Data JPA 介绍: Spring Data JPA 是 Spring Data 的一部分,它简化了…

Apipost数据库连接使用

Apipost提供了数据库连接功能&#xff0c;在接口调试时可以使用数据库获取入参或进行断言校验。目前的Apipost支持&#xff1a;Mysql、SQL Sever、Oracle、Clickhouse、达梦数据库、PostgreSQL、Redis、MongoDB 8种数据库的连接操作 新建数据库连接&#xff1a; 在「项目设置…

UDF学习(四)FLUENT UDF-DEFINE_PROFILE宏

基础知识&#xff1a; 利用DEFINE_PROFLILE可以指定以下边界或计算域信息&#xff1a;DEFINE_PROFILE(name,t,i)//既可以用解释型&#xff0c;也可以用编译型&#xff01; 主要用途&#xff1a; 边界速度、压力、温度、湍动能、湍流耗散率、质量流量&#xff1b;组分质量分数…