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

· · 题解

这道题其实可以用 sort 直接排序,代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[5000000]={};
int main(){
    int n,k;
    cin>>n>>k;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a,a+n);
    cout<<a[k];
    return 0;
}

不过会 TLE 两个数据,不过只需改一下输入输出就行,代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[5000000]={};
int main(){
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n);
    printf("%d",a[k]);
    return 0;
}