快速排序查询第k个数
给定一个长度为 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个数相关推荐
- 快速排序查询第k大元素C语言,快速排序和查找第K大元素
/* 输入n个整数和一个正整数k(1<=k<=n),输出这些整数从小到大排序后的第k个(例如,k=1就是最小值).n<=10^7. 快速排序的时间复杂度为:最坏情况下:O(n^2), ...
- 快速排序查询第k大元素C语言,福建十三水下载苹果 -官方网站
NioEventLoop启动触发条件: 1.服务端绑定本地端口 2.新连接接入通过chooser绑定一个NioEventLoop 服务端绑定本地端口 绑定本地端口,使用下面方法; ChannelFut ...
- C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。
)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出. [输入] 第一行包含一个整数n,表示数组的大小. 第二行包含n个整数,表示数组的元素,整数之间以一个 ...
- 小k java_leetcode——面试题 17.14. 最小K个数 (java快速排序)
描述:设计一个算法,找出数组中最小的k个数.以任意顺序返回这k个数均可. 输入: arr = [1,3,5,7,2,4,6,8], k = 4 输出: [1,2,3,4] 解题思路: 这题因为不要求排 ...
- 数据结构与算法--最小的k个数
最小的k个数 题目:输入n个整数,找出其中最小的k个数,例如输入4,5,6,7,8,9这六个数字,则最小的4个是4,5,6,7 方案一 还是最直观的方法,先排序,最快的是快排O(nlog2n),然后遍 ...
- 程序员编程艺术:第三章、寻找最小的k个数
程序员编程艺术:第三章.寻找最小的k个数 作者:July. 时间:二零一一年四月二十八日. 致谢:litaoye, strugglever,yansha,luuillu,Sorehead,及狂想曲创作 ...
- 快速排序及TOP K问题
目录 1.介绍1 2.介绍2 3.介绍3 包括各种排序的空间及时间复杂度 1.介绍1 摘自 https://www.cnblogs.com/itxiaok/archive/2019/02/15/103 ...
- 剑指offer 40.最小的 K 个数 python代码
题目 寻找数组中的最小的k个数,也叫topk问题. 牛客网测试地址 注意: 牛客网的提交需要将最终的结果排序 思路 快速排序的 partition() 方法,会返回一个整数 j 使得 a[l-j-1] ...
- hdu 2665(主席树查询区间k大值)
先贴我自己写的代码做模板虽然跟原博主没什么两样.(一开始空间开的4*maxn,交到hdu上一直TLE很奇怪) #include<bits/stdc++.h> using namespace ...
最新文章
- 22. datenum Matlab中的日期型数据处理函数
- 最近做了一个搜索接口的优化,反复压测了四次,终于达到要求了
- DSP的GEL文件介绍
- 查看数据库表使用空间大小
- IBM收购Clearleap,提供云视频服务
- Go的go-sql-driver/mysql
- 多线程总结之旅(12):跨线程调用控件的几种方式
- 【Docker】Docker 如何在容器内安装vi命令(vi不能使用)
- 我的世界服务器自定义代码,《我的世界》服务器指令代码秘籍大全
- 分析了 3000 份 Bug 记录,可以发现什么?
- mysql安装方法_MySQL安装的三种方式
- 在Linux使用exec执行命令时报的哪些错
- 自学编程的六种方法,你必须知道?
- 【爬虫】使用Scrapy框架进行爬虫详解及示例
- 计算机网络ip进制转换方法,IP地址与二进制之间的转换
- VS2010在加载项目时,提示无法打开项目文件, 此安装不支持该项目类型的解决方法
- 手机芯片的AP、BP和CP
- 注解与APT、JavaPoet
- python 解决第三方app微信登入昵称乱码的问题
- 宇视NVR如何使用RTSP协议添加相机