80分,最后一个点tle了

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

Meawerful @ 2023-03-17 10:42:50

这是我的代码,改了好久都没改好;w;

#include <iostream>
using namespace std;
int k;
void qsort(int a[],int l,int r){
    int i=l;
    int j=r;
    int tmp;
    int flag=a[(l+r)/2];
    do{
        while(a[i]<flag){
            i++;
        }
        while(a[j]>flag){
            j--;
        }
        if(i<=j){
            tmp=a[i];
            a[i]=a[j];
            a[j]=tmp;
            i++;
            j--;
        }
    }while(i<=j);
    if(k<=j){
        qsort(a,l,j);
    }else if(i<=k){
        qsort(a,i,r);
    }else{
        cout<<a[j+1];
        exit(0);
    }
}
int main(){
    int x,n[5000100];
    cin>>x>>k;
    for(int i=0;i<x;i++){
        cin>>n[i];
    }
    qsort(n,0,x-1);
    cout<<n[k];
}

by 鏡音リン @ 2023-03-17 11:09:49

@Meawerful

cin.tie(0); ios_base::sync_with_stdio(0);

by Meawerful @ 2023-03-17 11:16:37

@鏡音リン 通过啦!爱你!


|