ACGO首AC的GO
2024-04-20 16:42:45
发布于:上海
29阅读
0回复
0点赞
题目要求分治算法,那么排序中有快速排序符合要求,使用快排完成此题
#include <cstdlib>
#include<iostream>
using namespace std;
const int N=5e6+9;
int n,k,s[N];
void Qsort(int l,int r){
int i=l,j=r,mid=s[(i+j)/2];
while(i<=j){
while(s[i]<mid)i++;
while(s[j]>mid)j--;
if(i<=j){
swap(s[i],s[j]);
i++,j--;
}
}
if(l<j)Qsort(l,j);
if(r>i)Qsort(i,r);
}
int main(){
cin>>n>>k;
for(int i=0;i<n;i++)cin>>s[i];
Qsort(0,n-1);
cout<<s[k];
return 0;
}
这里空空如也
有帮助,赞一个