nth_element函数的用法

nth_element函数的用法

此函数的作用是将数组或vector中第n小的元素放到数组第n个地址(0-based就是第n-1个,此句后半句也是0-based),同时在第n个地址前的所有元素全部小于a[n-1],后面的所有元素全部大于a[n-1]

nth_element接受三个参数,第一是区间首地址,第二是目标地址,第三是区间末尾地址(最后一个有效元素的后面一个),可以参考sort函数

时间复杂度不高,比排序后找更快

示例如下

#include<algorithm>
#include<iostream>
using namespace std;
int main(){
    int a[]={3,5,4,6,8,1,9};//7个元素,第5小的元素是6
    int size=7,pos=5;
    nth_element(a,a+pos-1,a+size);//0-based所以目标要减去1
    for(int i=0;i<size;i++) 
        cout<<a[i]<<' ';
    cout<<endl;
    return 0;
}

输出结果如下

4 1 3 5 6 8 9 
posted @ 2026-01-28 22:23  江蝶  阅读(5)  评论(0)    收藏  举报