题目描述
输入 nn(1≤n<50000001≤n<5000000 且 nn 为奇数)个数字 ai(1≤ai<1091≤ai<109),输出这些数字的第 k 小的数。最小的数是第 0 小。
请尽量不要使用 nth_element
来写本题,因为本题的重点在于练习分治算法。
输入格式
无
输出格式
无
输入输出样例
输入 #1
5 1 4 3 2 1 5
输出 #1
2
代码:
#include<bits/stdc++.h>
using namespace std;
int x[5000005], k;
int main() /
{
int n; // 定义一个变量n
cin >> n >> k; // 输入n,k
// 使用for循环,从0到n-1,读取n个整数到数组x中
for(int i = 0; i < n; i++)
cin>>x[i];
//对数组x的前n个元素进行排序
sort(x, x + n);
// 输出排序后数组中索引为k的元素
cout << x[k] << endl; // 输出答案,并添加换行符endl
return 0;
}