#2258. 寻找第K大数
寻找第K大数
寻找第K大数
说明
N个小朋友在一起做游戏。每个小朋友在自己的硬纸板上写一个数,然后同时举起来。接着,小Y老师提一个问题,看哪个小朋友先抢答出来。问题是:在这N个数中,第K大的是哪个数?请你编程完成。
输入格式
输入文件的第一行为 2 个整数,依次为 N 和 K (K <= N <= 10000)。
下面 N 行,每行为一个整数,表示从第 1 个小朋友到第 N 个朋友分别写的数。假设这些小朋友只知道 -32768~32767 之间的数。
输出格式
输出文件只有一行,输出一个数,为第 K 大的那个数。
样例
输入数据 1
4 3
1
2
2
4
输出数据 1
2
提示
- 注意:本题第 2 大的数是
2,第 3 大的数也是2,第 4 大的数是1。
题目分析
- 本题要求找出数组中的第
K大的数。考虑到数组可能包含重复的数字,第K大的数不一定是唯一的。 - 对于输入的数据,我们可以利用排序算法将数字按从大到小排列,之后选择第
K个元素。这里,我们可以利用 快速排序 或 排序函数 来完成。 - 另外,可以通过使用堆来提高效率,特别是在需要频繁获取第
K大数的情况下。