题解 P1923 【【深基9.例4】求第 k 小的数】

· · 题解

刚翻了一下原来P1138第k小整数,发现竟然没人用nth_element神器,这里介绍一下。

在强大的STL库中存在一个神奇的函数,那就是nth_element,这个函数主要用来将数组元素中第k小的整数排出来并在数组中就位,随时调用,可谓十分实用。

函数语句:nth_element(数组名,数组名+第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小整数
}