XSean @ 2022-08-30 12:40:40
#include<bits/stdc++.h>
using namespace std;
int arr[5000001];
void qsort(int l,int r){
int i=l,j=r;
int mid=arr[(l+r)/2];
while(i<j){
while(arr[i]<mid) i++;
while(arr[j]>mid) j--;
if(i<=j){
swap(arr[i],arr[j]);
i++;j--;
}
}
if(l<j) qsort(l,j);
if(i<r) qsort(i,r);
}
int main(){
int n,p;
cin>>n>>p;
for(int i=0;i<n;i++) cin>>arr[i];
qsort(0,n-1);
cout<<arr[p];
return 0;
}
by TLEWA @ 2022-08-30 13:01:21
@Sean_xzx 正解复杂度 O(n)
by SegTree @ 2022-08-30 13:40:40
@Sean_xzx 快读+O2
by Lovely_Chtholly @ 2022-08-30 14:47:54
@jpb_Saturn 正确的,快读不开O2亲测80分,开O2即可AC
开 O2 过这道题的,你们最好想想你们来写这道题是为了学会怎么 O(n) 求第 k 小数还是学会开 O2
——时律
by lightcloud @ 2022-09-17 18:26:30
归并+o2