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

快排-P1923求第 k 小的数

快排应用

P1923 【深基9.例4】求第 k 小的数
题目来源:洛谷题库1923
在这里插入图片描述
思路:
数据量5*1e6 普通的冒泡、选择不行,数据范围大,计数排序也不行,考虑快排

参考代码

手写快排

#include <bits/stdc++.h>
using namespace std;
const int N = 5*1e6+5; 
int n,k;//第k小的数
int a[N],res=0;
void qsort(int l,int r){if(l==r) {res = a[l];return ;}else{int mid = a[(l+r)/2];int i=l,j=r;do{while(a[i]<mid) i++;while(a[j]>mid) j--;if(i<=j){swap(a[i],a[j]);i++,j--; }}while(i<=j);if(k<=j) qsort(l,j);//只需要排序zuo区间 else if(k>=i) qsort(i,r); //只需要排序you区间 else {res = a[k] ; //刚好处在j i中间的 return;}}
}
int main(){
//	ios::sync_with_stdio(false);
//	cin.tie(nullptr); 辅助cin cout-加快读写 cin>>n>>k;for(int i=0;i<n;i++){scanf("%d",&a[i]); //数据比较大,有点危险,需要快速读写,否则TEL }qsort(0,n-1);cout<<res; return 0;
} 

参考代码

直接套函数

ios::sync_with_stdio(false);cin.tie(nullptr); //辅助cin cout-加快读写 cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];}sort(a,a+n);cout<<a[k]; 
http://www.xdnf.cn/news/8546.html

相关文章:

  • 开发指南117-文字阴影特效
  • 七彩喜康养护理——科技赋能下的全周期健康守护
  • 60道Angular高频题整理(附答案背诵版)
  • 动态防御体系实战:AI如何重构DDoS攻防逻辑
  • 实时操作系统革命:实时Linux驱动的智能时代底层重构
  • 向量数据库该如何选择?Milvus 、ES、OpenSearch 快速对比:向量搜索能力与智能检索引擎的应用前景
  • 小白学习顺序表 之 通讯录实现
  • JAVA查漏补缺(2)
  • 并发容器(Collections)
  • 文章记单词 | 第109篇(六级)
  • 主成分分析基本概念及python代码使用
  • 【软件测试】第三章·软件测试基本方法(逻辑覆盖、路径覆盖)
  • 从数学融智学视域系统地理解《道德经》:38至56,德化社会
  • 【MySQL】实战时遇到的几个 tips
  • AAAI-2016《Approximate K-Means++ in Sublinear Time》
  • python实战:Python脚本后台运行的方法
  • docker部署并测试翻译模型-CSANMT连续语义增强机器翻译
  • 《Android 应用开发基础教程》——第十五章:Android 动画机制详解(属性动画、帧动画、过渡动画)
  • 深入理解SummaryWriter类与TensorBoard的基本使用
  • SurfaceFlinger及Android应用RenderThread角度观察Jank丢帧卡顿
  • 【漫话机器学习系列】274.基尼指数(Gini Index)
  • 在Vue3 + Vite 项目安装使用 Tailwind CSS 4.0报错
  • 小白刷题之链表中的 “龟兔赛跑“:快慢指针算法详解
  • python打卡day34@浙大疏锦行
  • C++线程池的使用
  • 力扣 128.最长连续序列
  • 缓存和数据库一致性问题
  • 对于geoserver发布数据后的开发应用
  • MYSQL之复合查询
  • 基于51单片机和8X8点阵屏、独立按键的飞行躲闪类小游戏