Acwing 786.第k个数
用快排对数组排序后,输出从小到大的第k个数。
#include<iostream>
using namespace std;
int q[100010];
int quick_sort(int k,int l,int r){
int i=l-1,j=r+1,x=q[l+r>>1];
if(l>=r) return q[k-1]; //输出第k个数
while(i<j){
do i++; while(q[i]<x);
do j--; while(q[j]>x);
if(i<j) swap(q[i],q[j]);
}
quick_sort(k,l,j);
quick_sort(k,j+1,r);
}
int main(){
int n,m;
cin>>n;
cin>>m;
for(int i=0;i<n;i++)
cin>>q[i];
cout<<quick_sort(m,0,n-1);
return 0;
}
本文来自博客园,作者:Nikkie-02,转载请注明原文链接:https://www.cnblogs.com/Nikkie-02/p/16830189.html

浙公网安备 33010602011771号