_Rikka_ @ 2024-03-13 15:06:50
#include<iostream>
#include <vector>
using namespace std;
int a[5000000]={0};
int Partition(int*R,int s,int t)
{
int i=s,j=t;
int base=R[s];
while(i<j)
{
while(i<j&&R[j]>base)
{
j--;
}
if(i<j)
{
R[i]=R[j];
i++;
}
while(i<j&&R[i]<=base)
{
i++;
}
if(i<j)
{
R[j]=R[i];
j--;
}
}
R[i]=base;
return i;
}
int _Quicksort(int*R,int s,int t,int k)
{
if(s<t)
{
int i=Partition(R,s,t);
if(i==k)
{
return R[i];
}
if(i<k)
{
return _Quicksort(R,i+1,t,k); //对右半部分进行排序
}
else if(i>k)
{
return _Quicksort(R,s,i-1,k); //对左半部分进行排序
}
}
else
{
return R[s];
}
}
int main()
{ int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int result=_Quicksort(a,0,n-1,k);
cout<<result;
}
by Ycc211 @ 2024-03-19 22:27:11
@Rikka 输入a[i]换成scanf试一下,cin输入要慢一点
by _Rikka_ @ 2024-03-24 16:13:39
@Ycc211 感谢,虽然不知道为什么但是改了之后确实AC了,谢谢大佬