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;
}
posted @   Nikkie-02  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示