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

输入格式
第一行包含两个整数 n 和 k。

第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整数数列。

输出格式
输出一个整数,表示数列的第 k 小数。

数据范围
1≤n≤100000,
1≤k≤n
输入样例:
5 3
2 4 1 5 3
输出样例:
3

题解可查看
快速排序题解

#include<iostream>
using namespace std;const int N= 1e6+10;
int n,k;
int q[N];void quick_sort(int q[],int l,int r){if(l>=r) return;int x=q[l],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 %d",&n,&k);for(int i=0;i<n;i++) scanf("%d",&q[i]);quick_sort(q,0,n-1);printf("%d",q[k-1]);
}

快速排序查询第k个数相关推荐

  1. 快速排序查询第k大元素C语言,快速排序和查找第K大元素

    /* 输入n个整数和一个正整数k(1<=k<=n),输出这些整数从小到大排序后的第k个(例如,k=1就是最小值).n<=10^7. 快速排序的时间复杂度为:最坏情况下:O(n^2), ...

  2. 快速排序查询第k大元素C语言,福建十三水下载苹果 -官方网站

    NioEventLoop启动触发条件: 1.服务端绑定本地端口 2.新连接接入通过chooser绑定一个NioEventLoop 服务端绑定本地端口 绑定本地端口,使用下面方法; ChannelFut ...

  3. C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。

    )输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出. [输入] 第一行包含一个整数n,表示数组的大小. 第二行包含n个整数,表示数组的元素,整数之间以一个 ...

  4. 小k java_leetcode——面试题 17.14. 最小K个数 (java快速排序)

    描述:设计一个算法,找出数组中最小的k个数.以任意顺序返回这k个数均可. 输入: arr = [1,3,5,7,2,4,6,8], k = 4 输出: [1,2,3,4] 解题思路: 这题因为不要求排 ...

  5. 数据结构与算法--最小的k个数

    最小的k个数 题目:输入n个整数,找出其中最小的k个数,例如输入4,5,6,7,8,9这六个数字,则最小的4个是4,5,6,7 方案一 还是最直观的方法,先排序,最快的是快排O(nlog2n),然后遍 ...

  6. 程序员编程艺术:第三章、寻找最小的k个数

    程序员编程艺术:第三章.寻找最小的k个数 作者:July. 时间:二零一一年四月二十八日. 致谢:litaoye, strugglever,yansha,luuillu,Sorehead,及狂想曲创作 ...

  7. 快速排序及TOP K问题

    目录 1.介绍1 2.介绍2 3.介绍3 包括各种排序的空间及时间复杂度 1.介绍1 摘自 https://www.cnblogs.com/itxiaok/archive/2019/02/15/103 ...

  8. 剑指offer 40.最小的 K 个数 python代码

    题目 寻找数组中的最小的k个数,也叫topk问题. 牛客网测试地址 注意: 牛客网的提交需要将最终的结果排序 思路 快速排序的 partition() 方法,会返回一个整数 j 使得 a[l-j-1] ...

  9. hdu 2665(主席树查询区间k大值)

    先贴我自己写的代码做模板虽然跟原博主没什么两样.(一开始空间开的4*maxn,交到hdu上一直TLE很奇怪) #include<bits/stdc++.h> using namespace ...

最新文章

  1. 22. datenum Matlab中的日期型数据处理函数
  2. 最近做了一个搜索接口的优化,反复压测了四次,终于达到要求了
  3. DSP的GEL文件介绍
  4. 查看数据库表使用空间大小
  5. IBM收购Clearleap,提供云视频服务
  6. Go的go-sql-driver/mysql
  7. 多线程总结之旅(12):跨线程调用控件的几种方式
  8. 【Docker】Docker 如何在容器内安装vi命令(vi不能使用)
  9. 我的世界服务器自定义代码,《我的世界》服务器指令代码秘籍大全
  10. 分析了 3000 份 Bug 记录,可以发现什么?
  11. mysql安装方法_MySQL安装的三种方式
  12. 在Linux使用exec执行命令时报的哪些错
  13. 自学编程的六种方法,你必须知道?
  14. 【爬虫】使用Scrapy框架进行爬虫详解及示例
  15. 计算机网络ip进制转换方法,IP地址与二进制之间的转换
  16. VS2010在加载项目时,提示无法打开项目文件, 此安装不支持该项目类型的解决方法
  17. 手机芯片的AP、BP和CP
  18. 注解与APT、JavaPoet
  19. python 解决第三方app微信登入昵称乱码的问题
  20. 宇视NVR如何使用RTSP协议添加相机

热门文章

  1. 【u009】瑞瑞的木板
  2. android 常用adb 及linux 命令
  3. HttpWebRequest的timeout和ReadWriteTimeout
  4. JNI之常用函数大全
  5. iOS开发拓展篇-XMPP简单介绍
  6. nc扫描端口-curl-手动查杀木马过程之生成木马程序病原体并自动运行
  7. 惠普台式机重装系统之后,无法进入系统
  8. win10 查看系统运行时间
  9. postgre 表被加锁无法解锁问题
  10. 【Python-3.5】Pygal模拟骰子点数,分析结果可视化