求第 k 小的数 代码 快排 不要喷
查看原帖
求第 k 小的数 代码 快排 不要喷
1497995
azy1楼主2025/6/23 20:43
#include <bits/stdc++.h>
using namespace std;
int n, k, a[5555555];
void qsort(int l, int r) {
    int i = l; int j = r, flag = a[(l + r) / 2];
    do {
        while(a[i] < flag) i++;
        while(a[j] > flag) j--;
        if(i <= j) {
            swap(a[i], a[j]);
            i++; j--;
        }
    }while(i <= j);
    if(l < j) qsort(l, j);
    if(i < r) qsort(i, r);
}
int main() {
    scanf("%d%d", &n, &k);
    for(int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    qsort(0, n - 1);
    printf("%d", a[k]);
    return 0;
}
2025/6/23 20:43
加载中...