C++ nth_element排序算法
C++ nth_element排序算法
函数头文件:<algorithm>
default (1) |
template <class RandomAccessIterator> void nth_element (RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last);
|
---|---|
custom (2) |
template <class RandomAccessIterator, class Compare> void nth_element (RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last, Compare comp);
|
---|---|
应用的范围由它的第一个和第三个参数指定。第二个参数是一个指向第 n 个元素的迭代器。如果这个范围内的元素是完全有序的,nth_dement() 的执行会导致第 n 个元素被放置在适当的位置。这个范围内,在第 n 个元素之前的元素都小于第 n 个元素,而且它后面的每个元素都会比它大。
代码演示:
// nth_element example
#include <iostream> // std::cout
#include <algorithm> // std::nth_element, std::random_shuffle
#include <vector> // std::vectorbool myfunction (int i,int j) { return (i>j); } //比较函数int main () {std::vector<int> myvector;// set some values:for (int i=1; i<10; i++) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9std::random_shuffle (myvector.begin(), myvector.end());//随机// using default comparison (operator <):std::nth_element (myvector.begin(), myvector.begin()+5, myvector.end());// using function as compstd::nth_element (myvector.begin(), myvector.begin()+5, myvector.end(),myfunction);// print out content:std::cout << "myvector contains:";for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';return 0;
}
C++ nth_element排序算法相关推荐
- 如何在现代C ++中实现经典排序算法?
本文翻译自:How to implement classic sorting algorithms in modern C++? The std::sort algorithm (and its co ...
- 伍六七带你学算法 进阶篇-排序算法
给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...
- C++排序算法实现(更新中)
比较排序法:如冒泡排序.简单选择排序.合并排序.快速排序.其最优的时间复杂度为O(nlogn). 其他排序法:如桶排序.基数排序等.时间复杂度可以达到O(n).但试用范围有要求. 桶排序:排序的数组元 ...
- 十种经典排序算法精粹(c语言版本)
下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法: 插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序.整理出来以作备 ...
- 十大排序算法 导图总结
以下为我们经常用到的十大典型排序算法导图,很多设计以及优化的思想值得去参考学习 因为代码较多,所以都添加到对应的实现注释中了,相关代码可以从Mind-mapping获取xmind源文件 参考文档: 基 ...
- C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)
排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序: 直接插入排序 希尔排序 (插入) 冒泡排序 快速排序 (交换) 直接选择排序 ...
- C++拾取——使用stl标准库实现排序算法及评测
今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...
- 常用排序算法的C++实现
排序是将一组"无序"的记录序列调整为"有序"的记录序列. 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在 ...
- python 排序算法 简书_Python---简析八大排序算法
前言 1 .排序的概念 排序是计算机内经常进行的一种操作,其目的是将一组"无序"的记录序列调整为"有序"的记录序列. 排序分为内部排序和外部排序. 若整个排序过 ...
最新文章
- 怎样解决MySQL数据库主从复制延迟的问题
- Java 中 StringBuilder 在高性能用法总结
- HDU 2176(Nim博弈)
- 实例35:python
- python时间序列预测不连续怎么办_python – 不连续的时间序列在x轴上绘制日期
- table中的td内容过长显示为固定长度,多余部分用省略号代替
- 简单mysql数据库备份一例及crontab说明
- 714. 买卖股票的zui佳时机含手续费(JavaScript)
- WPF界面设计技巧(11)-认知流文档 小议WPF的野心
- jsp页面引用相关js,css文件路径问题
- 安防无战事:一场 10213 亿元的误会
- 计算机编码中进制的区别,计算机中的进制和编码(转载)
- 补码,反码,原码的范围总结
- OpenCV-python安装教程
- 盒式滤波器BoxFilter
- 【h5py 报错】ImportError: DLL load failed while importing defs: 找不到指定的程序。
- c语言指针藏头,2020中秋节的藏头诗_关于中秋节的藏头诗词
- pyqt5标签中的字设置不同字体_PyQt5 控件字体样式等设置的实现
- 微信小程序项目实例小程序记事本+后台
- “我不是坚强,我只是走投无路”,从职高到杭电、浙大、麻省计算机博士!...