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

排序模板——C++

 0.排序模板题目

题目描述

将读入的 N 个数从小到大排序后输出。

输入格式

第一行为一个正整数 N。

第二行包含 N 个空格隔开的正整数 ai​,为你需要进行排序的数。

输出格式

将给定的 N 个数从小到大输出,数之间空格隔开,行末换行且无空格。

输入输出样例

输入 

5
4 2 4 5 1

输出

1 2 4 4 5

说明/提示

对于 20% 的数据,有 1≤N≤1e+3;

对于 100% 的数据,有 1≤N≤1e+5,1≤ai​≤1e+9。


 

1.快速排序

//快速排序
#include<iostream>
#include<cstdio>using namespace std;const int N = 100000;
int q[N];
int n;void Quick_sort(int q[], int l, int r)
{if (l >= r) return;int x = q[(l + r) / 2], i = l - 1, j = r + 1;while (i < j){do i++; while (q[i] < x);do j--; while (q[j] > x);if (i < j) swap(q[i], q[j]);}Quick_sort(q, l, j);Quick_sort(q, j + 1, r);
}int main()
{scanf("%d", &n);for (int i = 0; i < n; i++) scanf("%d", &q[i]);Quick_sort(q, 0, n - 1);for (int i = 0; i < n; i++) printf("%d ", q[i]);return 0;
}

 

2.归并排序

//归并排序
#include<iostream>
#include<cstdio>using namespace std;const int N = 100000;
int q[N], tmp[N];
int n;void Merge_sort(int q[], int l, int r)
{if (l >= r) return;int mid = (l + r) / 2;Merge_sort(q, l, mid);Merge_sort(q, mid + 1, r);int k = 0, i = l, j = mid + 1;while (i <= mid && j <= r){if (q[i] <= q[j]) tmp[k++] = q[i++];else tmp[k++] = q[j++];}while (i <= mid) tmp[k++] = q[i++];while (j <= r) tmp[k++] = q[j++];for (i = l, j = 0; i <= r; i++, j++) q[i] = tmp[j];
}int main()
{scanf("%d", &n);for (int i = 0; i < n; i++) scanf("%d", &q[i]);Merge_sort(q, 0, n - 1);for (int i = 0; i < n; i++) printf("%d ", q[i]);return 0;
}

 

3.头文件algorithm中的sort排序

//头文件algorithm中的sort排序
#include<iostream>
#include<cstdio>
#include<algorithm>using namespace std;const int N = 100000;
int q[N];
int n;int main()
{scanf("%d", &n);for (int i = 0; i < n; i++) scanf("%d", &q[i]);sort(q, q + n);for (int i = 0; i < n; i++) printf("%d ", q[i]);return 0;
}

 


4.例题(注意去重)

题目描述

现有 n 个正整数,要求出这 n 个正整数中的第 k 个最小整数(相同大小的整数只计算一次)。

输入格式

第一行为 n 和 k; 第二行开始为 n 个正整数的值,整数间用空格隔开。

输出格式

第k个最小整数的值;若无解,则输出 NO RESULT

输入输出样例

输入

10 3
1 3 3 7 2 5 1 2 4 6

输出 

3

说明/提示

n≤10000,k≤1000,正整数均小于 30000。 


 

解法一.排序后使用unique伪去重

#include<iostream>
#include<cstdio>
#include<algorithm>  //使用unique(),就是把数组伪去重,重复的数放在数组末using namespace std;const int N = 10000;
int q[N];
int n, k;int main()
{scanf("%d%d", &n, &k);for (int i = 0; i < n; i++) scanf("%d", &q[i]);sort(q, q+n);int ans = unique(q, q + n) - q;//给数组q去重,并让ans等于去重后非伪的长度if (k <= ans) printf("%d", q[k - 1]);else printf("NO RESULT");
}

解法二.桶排序(数组计数)

#include<iostream>
#include<cstdio>using namespace std;const int N = 10000;
int q[30000+1];//注意数组大小
int n, k;int main()
{int a, count=0,max=0;cin>>n>>k;for (int i = 0; i < n; i++){cin>>a;q[a]++;if(a>max) max=a;}for(int i=0;i<=max;i++){if(q[i]>=1) count++;if(count==k){printf("%d",i);return 0;}}printf("NO RESULT");return 0;
}

相关文章:

排序模板——C++

0.排序模板题目 题目描述 将读入的 N 个数从小到大排序后输出。 输入格式 第一行为一个正整数 N。 第二行包含 N 个空格隔开的正整数 ai​&#xff0c;为你需要进行排序的数。 输出格式 将给定的 N 个数从小到大输出&#xff0c;数之间空格隔开&#xff0c;行末换行且无空格。 …...

【Java面试】JVM汇总

目录 1.JVM为什么能跨平台&#xff1f; 2.JVM由哪些部分构成&#xff1f;每个部分起到什么作用&#xff1f; 3.什么是双亲委派&#xff1f;双亲委派的两大作用是什么&#xff1f; 举个例子&#x1f330;&#xff1a; 为什么要有这种“家族规矩”&#xff1f; 破坏双亲委派…...

【如何避免dify分类问题总是返回第一个分类错误】

如何用好Dify问题分类器&#xff1f;避开误分类陷阱的实战指南 在大模型应用开发中&#xff0c;问题分类器是构建智能工作流的核心组件。它通过判断用户意图将请求路由至不同处理分支&#xff0c;直接影响系统响应精准度。但在实际使用中&#xff0c;开发者常遇到分类结果总是…...

【SpringBoot】Spring 一站式解决方案:融合统一返回结果、异常处理与适配器模式

前言 ???本期讲解关于统一功能处理的详细介绍~~~ ??感兴趣的小伙伴看一看小编主页&#xff1a;-CSDN博客 ?? 你的点赞就是小编不断更新的最大动力 ??那么废话不多说直接开整吧~~ 目录 ???1.适配器模式? ??1.1适配器模式定义 ?编辑 ??1.2适配器模式角…...

STM32基础篇(三)------滴答定时器

滴答定时器简介 SysTick定时器&#xff08;STK&#xff09; 处理器有一个24位系统定时器SysTick&#xff0c;它从重新加载值倒计时到零&#xff0c;在下一个时钟沿重新加载&#xff08;换行&#xff09;LOAD寄存器中的值&#xff0c;然后对后续时钟倒计时。当处理器暂停调试时&…...

如何连接 AWS 上的服务器

连接到 AWS 上的服务器&#xff08;通常是 EC2 实例&#xff09;需要使用 SSH 并提供正确的私钥文件。以下是详细的步骤&#xff1a; 1. 下载并准备 .pem 文件 AWS 提供的私钥文件通常是 .pem 文件。确保你已下载该 .pem 文件&#xff0c;并将它存放在本地计算机上。 注意&a…...

Sublime Text4安装、汉化

-------------2025-02-22可用---------------------- 官方网址下载&#xff1a;https://www.sublimetext.com 打开https://hexed.it 点击打开文件找到软件安装目录下的 ctrlf 查找 8079 0500 0f94 c2右边启用替换替换为:c641 0501 b200 90点击替换按钮 替换完成后 另存为本地…...

CameraX学习1-关于预览、拍照、对焦

关于CameraX是否可以打开多种特殊摄像头&#xff0c;例如广角、长焦、景深等等 虽然CameraSelector只简单定义了前置后置&#xff0c;没具体指明摄像头&#xff0c;但是可以跟Camera2 API的CameraCharacteristics结合使用&#xff0c;获取对应的cameraid&#xff0c;再传入Came…...

【愚公系列】《Python网络爬虫从入门到精通》033-DataFrame的数据排序

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

RBF神经网络+NSGAII多目标优化算法,工艺参数优化、工程设计优化(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.RBF神经网络NSGAII多目标优化算法&#xff08;Matlab完整源码和数据&#xff09; 多目标优化是指在优化问题中同时考虑多个目标的优化过程。在多目标优化中&#xff0c;通常存在多个冲突的目标&#xff0c;即改善一…...

LVS+Keepalived高可用群集配置案例

以下是一个 LVSKeepalived 高可用群集配置案例&#xff1a; 1、环境准备 LVS 主调度器&#xff08;lvs1&#xff09;&#xff1a;IP 地址为 192.168.8.101&#xff0c;心跳 IP 为 192.168.4.101LVS 备调度器&#xff08;lvs2&#xff09;&#xff1a;IP 地址为 192.168.8.102…...

执行yum -y install npt 报错解决

Cannot find a valid baseurl for repo: base/7/x86_64 解决办法 一、检查网络连接 确保你的服务器可以访问互联网。你可以使用 ping 命令来测试&#xff1a; ping www.baidu.com 若能访问外网&#xff0c;则网络没问题&#xff0c;否则检查网络 二、修改CentOS-Base.rep…...

常见AI写作工具介绍(ChatGPT 4o、DeepClaude、Claude 3.5 Sonnet 、DeepSeek R1等)

AI写作工具介绍 1. ChatGPT-4o ChatGPT-4o是OpenAI于2024年5月发布的最新旗舰模型&#xff0c;相比之前的版本&#xff0c;它在多模态支持和实时推理能力上有了显著提升。它能够处理和理解音频、图像和文本数据&#xff0c;适用于复杂的图像分析、语音识别等应用场景[1]。 2…...

Android Studio 新版本Gradle通过JitPack发布Maven仓库示例

发布本地仓库示例&#xff1a;https://blog.csdn.net/loutengyuan/article/details/145938967 以下是基于 Android Studio 24.2.2&#xff08;Gradle 8.10.2 AGP 8.8.0 JDK17&#xff09; 的通过JitPack发布Maven仓库示例&#xff0c;包含aar和jar的不同配置&#xff1a; 1.…...

【官方配图】win10/win11 安装cuda 和 cudnn

文章目录 参考资料1.安装cuda toolkit1. 下载安装包2.安装验证 2. 安装cudnn下载cudnn安装包安装cudnn安装后的配置 参考资料 官方nvidia安装cuda官方nvidia安装cudnn 1.安装cuda toolkit 1. 下载安装包 下载地址 https://developer.nvidia.com/cuda-downloads?target_osW…...

使用 kubeadm 创建高可用 Kubernetes 及外部 etcd 集群

博客地址&#xff1a;使用 kubeadm 创建高可用 Kubernetes 及外部 etcd 集群 前言 Kubernetes 的官方中文文档内容全面&#xff0c;表达清晰&#xff0c;有大量示例和解析 无论任何情况下都推荐先花几个小时通读官方文档&#xff0c;来了解配置过程中的可选项&#xff0c;以…...

易错点abc

在同一个输入流上重复创建Scanner实例可能会导致一些问题&#xff0c;包括但不限于输入流的混乱。尤其是在处理标准输入&#xff08;System.in&#xff09;时&#xff0c;重复创建Scanner对象通常不是最佳实践&#xff0c;因为这可能导致某些输入数据丢失或者顺序出错。 为什么…...

android智能指针android::sp使用介绍

android::sp 是 Android 中的智能指针&#xff08;Smart Pointer&#xff09;的实现&#xff0c;用于管理对象的生命周期&#xff0c;避免手动管理内存泄漏等问题。它是 Android libutils 库中重要的一部分&#xff0c;常用于管理继承自 android::RefBase 的对象。 与标准库中…...

水滴tabbar canvas实现思路

废话不多说之间看效果图,只要解决了这个效果水滴tabbar就能做出来了 源码地址 一、核心实现步骤分解 布局结构搭建 使用 作为绘制容器 设置 width=600, height=200 基础尺寸 通过 JS 动态计算实际尺寸(适配高清屏) function initCanvas() {// 获取设备像素比(解决 Re…...

地弹与振铃

地弹&#xff08;Ground Bounce&#xff09;和振铃&#xff08;Ringing&#xff09;是数字电路中常见的信号完整性问题&#xff0c;两者都与高速开关和寄生参数有关&#xff0c;但表现形式和成因不同。以下是它们的对比及解决方法&#xff1a; 1. 地弹&#xff08;Ground Bounc…...

神经网络 - 激活函数(Sigmoid 型函数)

激活函数在神经元中非常重要的。为了增强网络的表示能力和学习能力&#xff0c;激活函数需要具备以下几点性质: (1) 连续并可导(允许少数点上不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数. (2) 激活函数及其导函数要尽可能的简单&#xff0…...

DeepSeek-R1自写CUDA内核跑分屠榜:开启GPU编程自动化新时代

引言 在AI领域&#xff0c;深度学习模型的性能优化一直是研究者们关注的核心。最近&#xff0c;斯坦福和普林斯顿的研究团队发现&#xff0c;DeepSeek-R1生成的自定义CUDA内核不仅超越了OpenAI的o1和Claude 3.5 Sonnet&#xff0c;还在KernelBench框架中取得了总排名第一的好成…...

爬虫下载B站视频简单程序(仅供学习)

请输入视频链接&#xff1a;https://www.bilibili.com/video/BV1owFSeREoh &#xff08;示例地址&#xff09; 程序显示结果如下&#xff1a; 下载进度: 100.00% 下载完成 视频已保存到: ./video.mp4 核心功能 1. 视频信息解析…...

2.5 运算符2

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的 2.5.3 赋值运算符 赋值运算符将值存储在左操作数指定的对象中。有两种赋值操作&#xff1a; 1、简单赋值&#xff0c;使用。其中第二…...

DeepSeek + 自由职业 发现新大陆,从 0 到 1 全流程跑通商业 IP

DeepSeek 自由职业 发现新大陆&#xff0c;从 0 到 1 全流程跑通商业 IP 商业定位1. 商业定位分析提示词2. 私域引流策略提示词3. 变现模型计算器提示词4. 对标账号分析提示词5. 商业IP人设打造提示词6. 内容选题策略提示词7. 用户人群链分析提示词8. 内容布局与转化路径设计提…...

仿12306购票系统(3)

前面完成了乘车人登录功能的实现&#xff0c;本篇主要是控制台方面的管理 对于整体的控制台的设计&#xff0c;为了能够快速的检验&#xff0c;不进行登录拦截&#xff0c;在控制台的这个模块的controller层增加admin&#xff0c;以及在登录界面的拦截器排除掉admin. 车站 即…...

2025年2月个人工作生活总结

本文为 2025年2月工作生活总结。 工作记录 AI浪潮 AI非常火&#xff0c;春节至今&#xff0c;到处充斥着大量和AI、DeepSeek有关的新闻。领导也一再强调要用AI&#xff0c;甚至纳入到新一年的考核里。再往上&#xff0c;大领导开会的新闻稿里也作出要求&#xff0c;不能停下脚…...

【Python】网络爬虫——词云wordcloud详细教程,爬取豆瓣最新评论并生成各式词云

目录 一、功能介绍 二、关键技术 1、安装WordCloud 2、利用WordCloud 1、WordCloud的基础用法 **相关参数介绍** **WordCloud 提供的方法如下** 2、WordCloud的应用举例 3、设置停用词 4、WordCloud使用词频 三、程序设计的步骤 1、抓取网页数据 2、数据清洗 3、…...

第39天:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化

时间轴&#xff1a; Java知识点&#xff1a; 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&#xff0c;第三方组件使用等. 框架库&#xff1a;MyBatis&#xff0c;SpringMVC&#xff0c;SpringBoot&#xf…...

综合练习 —— 递归、搜索与回溯算法

目录 一、1863. 找出所有子集的异或总和再求和 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 代码思路 问题分析 核心思想 实现细节 代码解析 初始化 DFS 函数 时间复杂度 空间复杂度 示例运行 输入 运行过程 总结 二、 47. 全排列 II - 力扣&a…...