丿临〆江仙乀 @ 2023-11-09 21:22:59
#include<bits/stdc++.h>
using namespace std;
int x[5000005],k,n;
int qsort(int l,int r)
{
int i=l,j=r,mid=x[(l+r)/2];
do
{
while(x[i]<mid)
{
i++;
}
while(x[j]>mid)
{
j--;
}
if(i<=j)
{
swap(x[i],x[j]);
i++;
j--;
}
}
while(i<=j);
if (k<=j) qsort(l,j);
else if (k>=i) qsort(i,r);
else
{
cout<<x[k];
return 0;
}
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
scanf("%d",&x[i]);
}
qsort(1,n);
}
//为什么把题解中的从0到n-1输入改成从1到n输入就错了呢
by 帝都_henry26268 @ 2023-11-09 21:30:29
如果我说 “最小的数是第0小”