60分求助

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

ningmengcha @ 2022-07-12 17:48:15

#include<iostream>
#include<algorithm>
using namespace std;
int a[5000010];
void fenzhi(int l,int r){
    if(l>=r){
        return;
    }
    int x=a[(l+r)/2];
    int i=l-1;
    int j=r+1;
    while(i<j){
        do{
            i++;
            }while(a[i]<x);

        do{
            j--;
            }while(a[j]>x); 

        if(i<=j){
            swap(a[i],a[j]);
        }
    }
    fenzhi(l,j);
    fenzhi(j+1,r);
}
int main()
{
    int n;
    cin>>n;
    int m;
    cin>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    fenzhi(1,n);
//  for(int i=1;i<=n;i++){
        cout<<a[m+1];
//  } 
    return 0; 
 } 

|