链接:P1923 【深基9.例4】求第 k 小的数 - 洛谷
题目描述
输入 n(1≤n<5000000 且 n 为奇数)个数字 ai(1≤ai<109),输出这些数字的第 k 小的数。最小的数是第 0 小。
请尽量不要使用 nth_element
来写本题,因为本题的重点在于练习分治算法。
输入格式
无
输出格式
无
输入输出样例
输入 #1复制
5 1 4 3 2 1 5
输出 #1复制
2
C++代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k;
scanf("%d %d",&n,&k);
int a[5000005];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
nth_element(a,a+k,a+n);
printf("%d",a[k]);
return 0;
}