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

 

posted @ 2015-07-08 12:57  111qqz  阅读(106)  评论(0编辑  收藏  举报