题目:
题目描述
给定n(1<=n<=1000000)个元素,求第k小数(1<=k<=n)。
输入
一组样例。第一行输入两个整数n和k。第二行输入n个不同的int范围内的数。
输出
输出一行,输出第k小数。
样例输入 Copy
5 2
1 5 3 2 4
样例输出 Copy
2
解析:
题目给出n的数量级为1e6,时间限制为1000ms,说明时间复杂度必须控制在nlogn。
题目的本意应该是要学生练习快排或者归并排序的写法
单纯的求解只需要用sort即可(sort函数不一定是快排,c++会根据你提供的数据自动选择一种合适的排序算法,时间复杂度一定是nlogn)
代码:
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e6+5;
int a[N];
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
cout<<a[k-1];
}