dkjsiogu @ 2022-10-12 17:09:02
#include <bits/stdc++.h>
using namespace std;
void dkj_sort (long long int*,int,int);
long long int e,n;
int main()
{
long long int i;
cin>>n>>e;
long long int a[n];
for(i=0;i<n;i++)
{
cin>>a[i];
}
dkj_sort(a,0,n-1);
/*for(i=0;i<n;i++)
{
cout<<a[i]<<" ";
}*/
return 0;
}
void dkj_sort(long long int array[],int begin,int end)
{
if(begin>=end&&begin==e)
{
cout<<array[e];
return;
}
if(begin>=end)
{
return;
}
int i=begin,f=end;
while(i!=f)
{
while(array[f]>=array[begin]&&i!=f)
{
f--;
}
while(array[i]<array[begin]&&i!=f)
{
i++;
}
if(i !=f)
swap(array[f],array[i]);
}
swap(array[begin],array[i]);
if(e<=i)
dkj_sort(array,begin,i-1);
else
dkj_sort(array,i+1,end);
}
by zz_z2Spider @ 2022-10-12 17:57:01
这题快排完全可以,11ms跑挺快。
by Math_rad_round @ 2022-10-12 19:48:58
你的快排没有随机化,应该是被卡了吧,基准数不能直接选第一个,应该随机取一个