请求加强本题数据

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

Yikara @ 2021-08-30 13:25:18

sort 吸氧+卡常过了

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

by Zvelig1205 @ 2021-08-30 14:49:00

@JoeBiden2020 本来就是练习sort的吧

#include<cstdio>
#include<algorithm>
using namespace std;
int a[5000010];
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;
}

#include<cstdio>
using namespace std;
int n,k,a[5000010];
void sort(int l,int r)
{
    int i=l,j=r;
    int mid=a[(i+j)/2];
    do
    {
        while(a[i]<mid)i++;
        while(a[j]>mid)j--;
        if(i<=j)
        {
            int swap=a[i];
            a[i]=a[j];
            a[j]=swap;
            i++;
            j--;
        }
    }while(i<=j);
    if(j>l)sort(l,j);
    if(i<r)sort(i,r);
}
int main()
{
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    sort(1,n);
    printf("%d\n",a[k+1]);
    return 0;
}

|