justinjia @ 2020-11-29 19:52:44
为各位大佬献上代码:
#include"stdio.h"
int a[5000000];
void quicksort(int start,int end,int k){
if(start==end){
a[k]=a[start];
return;
}
int t,i=start,j=end;
const int pivot=a[(start-end)/2];
do{
while(a[i]<pivot)
i++;
while(a[j]>pivot)
j--;
if(i<=j){
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
}
}while(i<=j);
if(k<=j)
quicksort(start,j,k);
else if(i<=k)
quicksort(i,end,k);
else
quicksort(j+1,i-1,k);
}
int main(void){
int n,k;
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
quicksort(0,n-1,k);
printf("%d",a[k]);
return 0;
}
by justinjia @ 2020-11-30 18:26:01
@joy2010 你这代码也会TLE啊?