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;
}