STL第k大的数nth_element()的使用

头文件:#include< algorithm >
using namespace std;

作用:求第k的的数(下标从0开始计数)

返回值:无

格式:nth_element(数组名,数组名+k,数组名+数组大小,cmp)
具体cmp与sort使用相同

其内部思想是分治思想,无返回值,只是将第k大的元素排好位置,若要在其后的函数要使用第k大的元素,直接调用a[k]即可】
注意:会改变原来数组元素的位置且无规律,慎重使用

具体使用:

1.求第k小的数

#include<cstdio>
#include<algorithm>
using namespace std;
int a[5]={1,2,3,4,5};
int main(){
	int k;
	scanf("%d",&k);
	nth_element(a,a+k,a+5);
	printf("%d\n",a[k]);

	return 0;
} 

在这里插入图片描述
1.求第k大的数

#include<cstdio>
#include<algorithm>
using namespace std;
int a[5]={1,2,3,4,5};
bool cmp(int a,int b){
	return a>b;
}
int main(){
	int k;
	scanf("%d",&k);
	nth_element(a,a+k,a+5,cmp);
	printf("第%d大的数:%d\n",k,a[k]);
	return 0;
} 

在这里插入图片描述

发布了160 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Anterior_condyle/article/details/105272370