AcWing 786. 第k个数
原题链接
简单
作者:
柚子屎
,
2024-03-29 23:32:42
,
所有人可见
,
阅读 1
C++ 代码
#include <iostream>
using namespace std;
const int N = 1e6 + 10;
int n, k;
int q[N];
int quick_sort(int l, int r, int res) {
if ( l >=r ) return q[l];
int i = l-1, j= r+1, x = q[(l+r) >> 1];
while (i < j) {
do i++; while(q[i] < x);
do j--; while(q[j] > x);
if (i<j) swap(q[i], q[j]);
}
if ( res >= j) {
return quick_sort(j +1, r, res);
} else if (res < j) {
return quick_sort(l, j, res);
}
}
int main() {
cin >> n >> k;
for (int i =0; i< n; i++) cin >>q[i];
cout << quick_sort(0, n-1, k-2) <<endl;
}