StkOvflow

STACK OVERFLOW!

一言(ヒトコト)

别哭,眼泪会冻住的。
——那年那兔那些事儿

AcWing786.第k个数

题目描述

给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。

输入格式

第一行包含两个整数 nk

第二行包含 n 个整数(所有整数均在 1109 范围内),表示整数数列。

输出格式

输出一个整数,表示数列的第 k 小数。

数据范围

1n100000,
1kn

输入样例:

    5 3
    2 4 1 5 3

输出样例:

    3

算法

(排序) O(nlogn)

std::sort排下序,然后输出排后数组中的第k个数即可

C++ 代码

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1e6 + 10;
int n, a[N], k;

int main()
{
    scanf("%d%d", &n, &k);
    for (int i = 1; i <= n; i ++ ) 
        scanf("%d", &a[i]);
    
    sort(a + 1, a + 1 + n);
    printf("%d\n", a[k]);
    
    return 0;
}
posted @   StkOvflow  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
点击右上角即可分享
微信分享提示