求 n 个整数中第 k(1≤k≤n) 大的整数。
输入格式
n 和 k
n 个整数
输出格式
第 k 大的整数
输入样例
10 3
2 5 -1 9 25 0 12 4 -7 12
输出样例
12
nth_element(a+l, a+k, a+r)
实现
[
l
,
r
)
[l,r)
[l,r)范围内第k小的数放在有序的位置
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 1e7+5;
int arr[N];
int main(){
int n, k;
scanf("%d %d", &n, &k);
for(int i = 0; i < n; i++) scanf("%d", &arr[i]);
nth_element(arr, arr+n-k, arr+n);
printf("%d", arr[n-k]);
return 0;
}