第n个元素nth_element 用法简介

 简单的说nth_element算法仅排序第nth个元素(从0开始的索引)

如iarray [first,last) 元素区间

排序后  iarray[nth] 就是第nth大的元素(从0开始)

要注意的是[first,nth) [nth,last)内 的大小循序还不一定

只能确定iarray[nth]是第nth大的元素。

当然 [first,nth) 肯定是不大于 [nth,last)的。

简单测试代码如下

要注意的是,此函数只是将第nth大的元素排好了位置,但并没有返回值

所以要知道第nth大的元素 还得进行一步,cout<<iarray[nth]<<endl; nth既那个位子

#include <iostream> #include <algorithm> using namespace std; int main() { int iarray[]={5,6,15,89,7,2,1,3,52,63,12,64,47}; int len=sizeof(iarray)/sizeof(int); int i; for(i=0;i<len;i++) cout<<iarray[i]<<" "; nth_element(iarray,iarray+6,iarray+len); //排序第6个元素 cout<<endl; for(i=0;i<len;i++) cout<<iarray[i]<<" "; cout<<" 第6-th个元素 "<<iarray[6]<<endl; }  

 

 

 

 

 

 

 

 

你可能感兴趣的:(算法,测试)