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

题解:AcWing 786 第k个数

【题目来源】

AcWing:786. 第k个数 - AcWing题库

【题目描述】

给定一个长度为 \(n\) 的整数数列,以及一个整数 \(k\),请用快速选择算法求出数列从小到大排序后的第 \(k\) 个数。

【输入】

第一行包含两个整数 \(n\)\(k\)

第二行包含 \(n\) 个整数(所有整数均在 \(1\sim 10^9\) 范围内),表示整数数列。

【输出】

输出一个整数,表示数列的第 \(k\) 小数。

【输入样例】

5 3
2 4 1 5 3

【输出样例】

3

【算法标签】

《AcWing 786 第k个数》 #快速排序# #快速选择#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 100010;  // 定义数组最大容量int n, k;     // n: 数组元素个数, k: 要找的第k小的元素
int q[N];     // 存储数组元素// 快速选择算法:在数组q的[l,r]区间内寻找第k小的元素
int quick_sort(int l, int r, int k) {// 递归终止条件:区间只有一个元素时直接返回if (l == r) return q[l];// 分区过程int x = q[l], i = l - 1, j = r + 1;  // 选择最左元素作为基准while (i < j) {// 从左向右找第一个>=x的元素while (q[++i] < x);  // 从右向左找第一个<=x的元素while (q[--j] > x);  // 交换这两个元素if (i < j) swap(q[i], q[j]);}// 计算左半部分的元素个数int sl = j - l + 1;// 根据k的位置决定递归处理哪一部分if (k <= sl) return quick_sort(l, j, k);      // 第k小在左半部分else return quick_sort(j + 1, r, k - sl);  // 第k小在右半部分
}int main() {// 输入数据cin >> n >> k;for (int i = 0; i < n; i++) cin >> q[i];// 调用快速选择算法并输出结果cout << quick_sort(0, n - 1, k) << endl;return 0;
}

【运行结果】

5 3
2 4 1 5 3
3
http://www.jsqmd.com/news/397306/

相关文章:

  • CSS 网页布局
  • Servlet 数据库访问
  • YOLO26改进26:全网首发--C3k2融合自研创新模块C3k2_GhostDynamicConv
  • YOLO26改进27:全网首发--C3k2融合自研改进模块RVB_EMA
  • jEasyUI 创建页脚摘要
  • MySQL 删除数据表
  • centos7 中 安装docker与使用
  • Ruby Socket 编程
  • Spring IOC容器:Bean生命周期与循环依赖解决
  • 2/20
  • 2026排阻行业佼佼者,这些厂商表现亮眼,低温漂高精密电阻/抗浪涌电阻/荣誉代理/排阻,排阻公司哪家强 - 品牌推荐师
  • Python use schedule as recycle timer
  • 被小黄狗唤醒的碎碎念
  • 提示工程架构师看过来!AI提示工程质量保证的10大关键维度
  • 大数据领域ClickHouse的权限管理与审计
  • 解析AI原生应用领域思维框架的独特魅力
  • HBase与Presto集成:交互式查询解决方案
  • 芒格的“数学期望“思维:提高投资决策的准确性
  • 深度探索ing!提示工程架构师在虚拟助手中的应用奥秘大公开
  • GitHub 热榜项目 - 日榜(2026-02-20)
  • Python-flask框架的网约车个人出行顺风车在线打车租车系统出租管理平台-Pycharm django
  • IDEA创建多级包时显示在同一行怎么办
  • Python-flask框架餐饮连锁店点餐食材采购管理系统的设计与实现-Pycharm django
  • 《牛津谋杀案》电影解析
  • Python-flask框架的留守儿童心理辅导网站的设计与实现-Pycharm django
  • 大数据领域开放数据的应用场景拓展
  • Python-flask框架的积分制零食自选超市商城销售平台的设计与实现-Pycharm django
  • Python-flask框架大学生心理测评分析社交系统-Pycharm django
  • Python+Pandas:大数据描述性分析的10个高效技巧
  • Python-flask框架的医院挂号预约管理系统的设计与实现-Pycharm django