排序问题上机考试刷题

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

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

例题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;也叫仿函数。 函数…

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

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

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;现根据公司战略发展需求、赋能…

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;该方法可以同时保证优化调度方案的鲁棒性和非预测性。模型考虑两类不确定性&…

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

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

AssertionError: Torch not compiled with CUDA enabled

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

Apipost数据库连接使用

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

Doris 与 Clickhouse 对比(一)

1. 常用引擎 ☕️ Doris 表数据模型 duplicate key &#x1f3ac; 场景&#xff1a;适用于数据无需提前聚合的分析业务。 ⚠️ 注意点&#xff1a;只指定排序列&#xff0c;相同的行并不会合并。 unique key &#x1f3ac; 场景&#xff1a;适用于有更新需求的业务。 ⚠…

Optional lab: Linear Regression using Scikit-LearnⅠ

scikit-learn是一个开源的、可用于商业的机器学习工具包&#xff0c;此工具包包含本课程中需要使用的许多算法的实现 Goals In this lab you will utilize scikit-learn to implement linear regression using Gradient Descent Tools You will utilize functions from sci…

计算机设计大赛 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 垃圾邮件(短信)分类算…

MySQL DDL DML DQL DCL 通用语法

文章目录 DDL&#xff08;数据定义语言&#xff09;数据库操作表操作 DML&#xff08;数据操作语言&#xff09;添加数据注意事项 更新和删除数据 DQL&#xff08;数据查询语言&#xff09;基础查询条件查询聚合查询&#xff08;聚合函数&#xff09;分组查询排序查询分页查询D…

计算机网络:体系结构知识点汇总

文章目录 一、计算机网络概述1.1概念及功能1.2组成和分类1.3性能指标 二、体系结构与参考模型2.1分层结构、协议、接口、服务2.2OSI参考模型2.3TCP/IP参考模型 一、计算机网络概述 1.1概念及功能 计算机网络就是通过各个节点&#xff0c;这个节点包括终端的电脑&#xff0c;手…

0127-2-Vue深入学习5—Vue-Router路由模式

1、Vue-Router三种路由模式&#xff1a; hash&#xff1a;#️⃣使用URL hash 值来做路由&#xff0c;支持所有路由器&#xff1b;history:&#x1f4d6;依赖HTML5 History API和服务器配置&#xff1b;abstract:⛓支持所有JS运行环境&#xff0c;Node.js服务端&#xff1b; 1.1…

[网鼎杯 2018]Fakebook1

join一个用户后&#xff0c;点进去发现是这样的 查看这个页面的源代码&#xff0c;发现一个base64编码后的字串 decode之后就是我们join新用户时填入的blog网址 那我们是不是可以通过填入存储flag的地址&#xff0c;从而回显出来呢&#xff1f;当然&#xff0c;先按照常规sqli…

九、Kotlin 注解

1. 什么是注解 注解是对程序的附件信息说明。 注解可以作用在类、函数、函数参数、属性等上面。 注解的信息可用于源码级、编译期、运行时。 2. 注解类的定义 使用元注解 Retention 声明注解类的作用时期。 使用元注解 Target 声明注解类的作用对象。 定义注解类时可以声…