每日一题8:序列第k小
题目描述
给定一个长度为n的序列,问在此序列中,第k小的元素的值是多少。
输入格式
第1行输入两个正整数n,k。第2行输入n个用单个空格隔开的n个数,表示序列。
输出格式
1行,表示第k小的元素的值。
分析
一种比较简单的方法是直接将整个序列排序,输出第k个数就是答案,但时间复杂度为,超时。可以有一种时间复杂度仅为的方法就可解决。观察快速排序的过程,当按照"基准数"一次划分之后,两边的大小顺序就已经基本上确定了,所以可以只递归到第k小的值所在区间查询即可
每日一题8:序列第k小
给定一个长度为n的序列,问在此序列中,第k小的元素的值是多少。
第1行输入两个正整数n,k。第2行输入n个用单个空格隔开的n个数,表示序列。
1行,表示第k小的元素的值。
一种比较简单的方法是直接将整个序列排序,输出第k个数就是答案,但时间复杂度为,超时。可以有一种时间复杂度仅为的方法就可解决。观察快速排序的过程,当按照"基准数"一次划分之后,两边的大小顺序就已经基本上确定了,所以可以只递归到第k小的值所在区间查询即可