AcWing 786. 第k个数

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 786. 第k个数相关的知识,希望对你有一定的参考价值。

题目链接

https://www.acwing.com/problem/content/788/

思路

先用一种 n l o g 2 n nlog_2n nlog2n的排序算法排序,然后输出第k个元素即可

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000009
#define endl "\\n"
#define PII pair<int,int>
ll ksm(ll a,ll b) 
	ll ans = 1;
	for(;b;b>>=1LL) 
		if(b & 1) ans = ans * a % mod;
		a = a * a % mod;
	
	return ans;


ll lowbit(ll x)return -x & x;

const int N = 2e6+10;
int n,a[N];

void mysort(int a[],int l,int r) 
	if(l >= r) return;
	int x = a[l + r >> 1],i = l - 1,j = r + 1;
	while(i < j) 
		while(a[++i] < x);
		while(a[--j] > x);
		if(i < j) swap(a[i],a[j]);
	
	mysort(a,l,j);
	mysort(a,j+1,r);


int main()

	int k;
	scanf("%d%d",&n,&k);
	for(int i = 0;i < n; ++i) 
		scanf("%d",&a[i]);
	
	mysort(a,0,n-1);
	printf("%d\\n",a[k-1]);
	return 0;

以上是关于AcWing 786. 第k个数的主要内容,如果未能解决你的问题,请参考以下文章

2022下半年 Acwing 第二篇:AcWing 786. 第k个数

2022下半年 Acwing 第二篇:AcWing 786. 第k个数

Acwing 785. 快速排序/AcWing 786. 第k个数

AcWing基础算法课Level-2 第一讲 基础算法

786. 第 K 个最小的素数分数(二分)

⭐算法入门⭐《堆》中等01 —— LeetCode 面试题 17.09. 第 k 个数