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排序算法相关推荐

  1. 如何在现代C ++中实现经典排序算法?

    本文翻译自:How to implement classic sorting algorithms in modern C++? The std::sort algorithm (and its co ...

  2. 伍六七带你学算法 进阶篇-排序算法

    给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...

  3. C++排序算法实现(更新中)

    比较排序法:如冒泡排序.简单选择排序.合并排序.快速排序.其最优的时间复杂度为O(nlogn). 其他排序法:如桶排序.基数排序等.时间复杂度可以达到O(n).但试用范围有要求. 桶排序:排序的数组元 ...

  4. 十种经典排序算法精粹(c语言版本)

    下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法: 插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序.整理出来以作备 ...

  5. 十大排序算法 导图总结

    以下为我们经常用到的十大典型排序算法导图,很多设计以及优化的思想值得去参考学习 因为代码较多,所以都添加到对应的实现注释中了,相关代码可以从Mind-mapping获取xmind源文件 参考文档: 基 ...

  6. C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)

    排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序:   直接插入排序    希尔排序 (插入)  冒泡排序     快速排序  (交换) 直接选择排序  ...

  7. C++拾取——使用stl标准库实现排序算法及评测

    今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...

  8. 常用排序算法的C++实现

    排序是将一组"无序"的记录序列调整为"有序"的记录序列. 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在 ...

  9. python 排序算法 简书_Python---简析八大排序算法

    前言 1 .排序的概念 排序是计算机内经常进行的一种操作,其目的是将一组"无序"的记录序列调整为"有序"的记录序列. 排序分为内部排序和外部排序. 若整个排序过 ...

最新文章

  1. 怎样解决MySQL数据库主从复制延迟的问题
  2. Java 中 StringBuilder 在高性能用法总结
  3. HDU 2176(Nim博弈)
  4. 实例35:python
  5. python时间序列预测不连续怎么办_python – 不连续的时间序列在x轴上绘制日期
  6. table中的td内容过长显示为固定长度,多余部分用省略号代替
  7. 简单mysql数据库备份一例及crontab说明
  8. 714. 买卖股票的zui佳时机含手续费(JavaScript)
  9. WPF界面设计技巧(11)-认知流文档 小议WPF的野心
  10. jsp页面引用相关js,css文件路径问题
  11. 安防无战事:一场 10213 亿元的误会
  12. 计算机编码中进制的区别,计算机中的进制和编码(转载)
  13. 补码,反码,原码的范围总结
  14. OpenCV-python安装教程
  15. 盒式滤波器BoxFilter
  16. 【h5py 报错】ImportError: DLL load failed while importing defs: 找不到指定的程序。
  17. c语言指针藏头,2020中秋节的藏头诗_关于中秋节的藏头诗词
  18. pyqt5标签中的字设置不同字体_PyQt5 控件字体样式等设置的实现
  19. 微信小程序项目实例小程序记事本+后台
  20. “我不是坚强,我只是走投无路”,从职高到杭电、浙大、麻省计算机博士!...

热门文章

  1. 在手机上,可以把微信图片中的文字给识别出来吗?
  2. 小鲁客栈---预告篇
  3. 13 Msql之四种事务隔离界别
  4. 西门子博图指令(定时器操作二)
  5. Linux 安装Redis 图解教程
  6. 龙光集团·天境助力业主成就考究生活
  7. 日期选择器:jquery datepicker的使用
  8. GWAS:mtag (Multi-Trait Analysis of GWAS) 分析
  9. ElasticSearch + Logstash + kibana
  10. 基于单片机的智能电子秤系统设计(#0507)