nth_element()方法总结
2016-06-05 20:28
603 查看
一、函数参数
nth_element(first, nth, last, compare)
求[first, last]这个区间中第n大小的元素,如果参数加入了compare函数,就按compare函数的方式比较。
二、头文件
#include<algorithm>
三、作用
nth_element仅排序第n个元素(从0开始索引),即将位置n(从0开始)的元素放在第n大的位置,处理完之后,默认排在它前面的元素都不比它大,排在它后面的元素都不比它小。
例如:array[first, last)元素区间,排序后,array[nth]就是第n大的元素(从0开始)
但是[first, nth) 和 [nth,last)区间的大小顺序不一定。但是可以确定的是array[nth]一定是整个区间里第n大的元素。
[first,nth)中的元素都是不大于array[nth]的,[nth, last)中的元素都是不小于array[nth]的。
四、测试
代码:
结果:
nth_element(first, nth, last, compare)
求[first, last]这个区间中第n大小的元素,如果参数加入了compare函数,就按compare函数的方式比较。
二、头文件
#include<algorithm>
三、作用
nth_element仅排序第n个元素(从0开始索引),即将位置n(从0开始)的元素放在第n大的位置,处理完之后,默认排在它前面的元素都不比它大,排在它后面的元素都不比它小。
例如:array[first, last)元素区间,排序后,array[nth]就是第n大的元素(从0开始)
但是[first, nth) 和 [nth,last)区间的大小顺序不一定。但是可以确定的是array[nth]一定是整个区间里第n大的元素。
[first,nth)中的元素都是不大于array[nth]的,[nth, last)中的元素都是不小于array[nth]的。
四、测试
代码:
#include<iostream> #include<algorithm> using namespace std; int main(){ int array[] = {5,6,7,8,4,2,1,3,0}; int len=sizeof(array)/sizeof(int); cout<<"排序前: "; for(int i=0; i<len; i++) cout<<array[i]<<" "; nth_element(array, array+6, array+len); //排序第6个元素 cout<<endl; cout<<"排序后:"; for(int i=0; i<len; i++) cout<<array[i]<<" "; cout<<endl<<"第6个元素为"<<array[6]<<endl; }
结果:
相关文章推荐
- 如何在博客中添加背景音乐(博客园必须获得脚本权限)
- 对canvas arc()中counterclockwise参数的一些误解
- java加解密操作过程中的中文乱码问题
- 适合程序员的画图技法
- C#可扩展编程之MEF(三):导出类的方法和属性
- 适合程序员的画图技法
- 开放GitHub的理由
- jeecg 按条件查询
- String和StringBuffer、ArrayList和LinkedList、HashMap和HashTable的特点及区别。
- 排序算法
- 把m升水倒入n个桶中,可以有桶为空,问有多少种倒法
- 百度地图API android studio中不显示地图只显示网格线的问题
- uvalive 3027 Corporative Network(并查集)
- 将字符串长度进行剪切
- Tomcat——配置详解
- AngularJS 使用绑定和模板指令
- jQuery-AJAX
- module的一些资料
- centos 6.X 安装输入法
- JAVA中集合转数组遍历