头文件:#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;
}