有关nth_element的问题

来源:互联网 发布:java维护工程师招聘 编辑:程序博客网 时间:2024/05/19 19:55

nth_element是对部分排序(运用二分法),进行自定义查找的第几小的函数。(也可以第几大,只需写个函数就行)
nth_element(m+0,m+n,m+kk)
其意思是:找[m[0],m[kk])中第n小的数(当n为0时是最小的)
如果要找第n大的则加一个函数:
bool jiang(int a,int b)
{
return a>b;
}
nth_element(m,m+n,m+kk,jiang)

#include<cstdio>#include<algorithm> using namespace std;bool chen(int a,int b){    return a>b;}int main(){    int a,b,c;    while(scanf("%d",&a)!=EOF)    {        int  m[100];        for(b=0;b<a;b++)        {            scanf("%d",&m[b]);        }         nth_element(m,m+0,m+6,chen);        printf("%d\n",m[0]);    }    return 0;}
0 0