find_kth为啥错了,有没有神牛牪犇能解答一下
  • 板块题目总版
  • 楼主tjdyzh
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/12/10 11:24
  • 上次更新2023/10/26 23:57:52
查看原帖
find_kth为啥错了,有没有神牛牪犇能解答一下
547028
tjdyzh楼主2022/12/10 11:24
#include <bits/stdc++.h>
using namespace std;
int a[5000010];
int mysort(int a[],int left,int right,int k){
    if (left>=right) return a[left];
    int i=left,j=right;
    int x=a[left+rand()%(right-left+1)];
    while(i<j){
        while(a[i]<x) i++;
        while(a[j]>x) j--;

        if(i<=j) 
            swap(a[i],a[j]),i++,j--;
    }
    if(k<=j)mysort(a,left,j,k);
    else if(k>=i)mysort(a,i,right,k);
    else mysort(a,j+1,i-1,k);
    
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    cout<<mysort(a,1,n,k+1)<<endl;
    return 0;
}

2022/12/10 11:24
加载中...