洛谷P1923 【深基9.例4】求第 k 小的数

P1923 【深基9.例4】求第 k 小的数

题目描述

输入 n n n( 1 ≤ n < 5000000 1 \le n < 5000000 1≤n<5000000 且 n n n 为奇数)个数字 a i a_i ai( 1 ≤ a i < 10 9 1 \le a_i < {10}^9 1≤ai<109),输出这些数字的第 k k k 小的数。最小的数是第 0 0 0 小。

请尽量不要使用 nth_element 来写本题,因为本题的重点在于练习分治算法。

输入格式

第一行有两个整数,分别表示 n n n 和 k k k。

第二行有 n n n 个整数,第 i i i 个数表示 a i a_i ai。

输出格式

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

输入输出样例 #1

输入 #1

复制代码
5 1
4 3 2 1 5

输出 #1

复制代码
2
cpp 复制代码
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int n,k;
int main()
{
	scanf("%d%d",&n,&k);
	int tmp;
	vector<int> a;
	for(int i=1;i<=n;++i)
	{
		scanf("%d",&tmp);
		a.push_back(tmp);
	}
	nth_element(a.begin(),a.begin()+k,a.end());
	printf("%d",a[k]);
	return 0;
}

非常的直接

相关推荐
AKA__Zas5 天前
初识基本排序
java·数据结构·学习方法·排序
元亓亓亓9 天前
考研408--数据结构--day15--排序&内部排序(上)
数据结构·408·排序·内部排序
闻缺陷则喜何志丹1 个月前
【前后缀分解 排序】B4274 [蓝桥杯青少年组省赛 2023] 数字游戏|普及+
c++·蓝桥杯·排序·洛谷·前后缀分解
知无不研1 个月前
冒泡排序算法
算法·冒泡排序·排序
Tisfy1 个月前
LeetCode 3010.将数组分成最小总代价的子数组 I:排序 OR 维护最小次小
算法·leetcode·题解·排序·最小次小值
码农幻想梦1 个月前
PKUKY109 小白鼠排队
排序
西京刀客1 个月前
MySQL字符集排序规则冲突问题(utf8mb4_unicode_ci和utf8mb4_0900_ai_ci )
mysql·排序·utf8mb4
GHZhao_GIS_RS1 个月前
python中的sort和sorted用法汇总
python·排序·列表
码农幻想梦1 个月前
3446. 整数奇偶排序
排序
码农幻想梦1 个月前
3376. 成绩排序2
排序