987zz @ 2023-03-20 12:11:51
#include<iostream>
using namespace std;
int a[5000010],k;
void Quick_Sort(int l,int r,int a[])
{
int i=l-1,j=r+1,base=a[l+r>>1];
while(i<j)
{
do i++;while(a[i]<base);
do j--;while(a[j]>base);
if(i<j)
{
swap(a[i],a[j]);
}
}
if(k<j)Quick_Sort(l,j,a);
else if(k>i)Quick_Sort(j+1,r,a);
else
{
cout<<a[k];
}
}
int main()
{
int n;
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
Quick_Sort(0,n-1,a);
}
by CW_AM @ 2023-08-16 23:40:28
代码思路我和你一样,也是第三点wa,你将base不取数组的中间值,取l(这是个字母),就可以过,base=a[l];