题目描述
输入 n(1≤n<5000000且 n 为奇数)个数字 ai(1≤ai<10^9),输出这些数字的第 k 小的数。最小的数是第 0 小。
输入格式
共2行:
第一行2个整数n,k;
第二行n个整数;
输出格式
输出第k小的数
输入 #1
5 1 4 3 2 1 5
输出 #1
2
这道题可以用一个神器,它就是我们的nth_element
函数语句:nth_element(数组名,数组名+第k小元素,数组名+元素个数)
这个函数主要用来将数组元素中第k小的整数排出来并在数组中就位,随时调用,可谓十分实用。
具体如何用见下面AC代码:
#include<bits/stdc++.h>
using namespace std;
long long n,k,a[5000010];
int main()
{
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
nth_element(a,a+k,a+n);//使第k小整数就位
printf("%d",a[k]);//调用第k小整数
}
完结撒花!
这是本蒟蒻的第一篇题解,不好的地方还望多多海涵~~