BYER_FIGHTING @ 2024-08-23 14:36:38
可以问一下这段代码有什么问题吗?感谢
#include<bits/stdc++.h>
using namespace std;
long long k;
int findk(long long begin,long long end,long long*a){
int i=begin,j=end;
int temp=begin;
while(i<j){
while(i<j&&a[j]>a[temp]) j--;
while(i<j&&a[i]<=a[temp])i++;
if(i<j){
swap(a[i],a[j]);
i++;
j--;
}
}
swap(a[i],a[temp]);
if(k==i)
return a[i];
else if(k<i)
return findk(begin,i-1,a);
else
return findk(i+1,end,a);
}
int main(){
long long n;
cin>>n>>k;
long long *a=new long long[n];
for(int i=0;i<n;i++)
scanf("%lld",&a[i]);
cout<<findk(0,n-1,a);
return 0;
}
by BIOSS @ 2024-08-28 10:53:26
你为啥不用sort???