牛客补题第k小

86 阅读1分钟

第k小数
求第K小,一般解法:sort之后直接输出,但是5e6卡nlogn,可以用nth_element,On找出第k小个数

AC代码:

ll a[5000010];
int main()
{

    IOS;
    ll t;
    cin>>t;;
    while (t--)
    {
        ll n, k;
        cin>>n>>k;
        for (int i=1;i<=n;i++)
            cin>>a[i];
        nth_element(a+1, a+k, a+1+n);
        cout<<a[k]<<endl;
    }
    return 0;
}