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

浙公网安备 33010602011771号