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 .排序的概念 排序是计算机内经常进行的一种操作,其目的是将一组"无序"的记录序列调整为"有序"的记录序列. 排序分为内部排序和外部排序. 若整个排序过 ...
最新文章
- vue.js学习系列-第二篇
- 【计算机网络】网络安全 : 报文鉴别 ( 密码散列函数 | 报文摘要算法 MD5 | 安全散列算法 SHA-1 | MAC 报文鉴别码 )
- .NET Core IdentityServer4实战 第Ⅳ章-集成密码登陆模式
- Java基础学习总结(146)——开发人员日志实践规范
- 感觉自己不适合编程 确学了计算机专业,高薪程序员:“我劝他学医,别学计算机,却被冤枉在害人”...
- Spring-context-ConfigurationClassUtils类
- 怎样的高管才能得到下属的信任?
- python在线学习直播-Python在线学习最有效马哥开启全网独家全程直播课
- 原生ajax 和jquery ajax 个人总结
- 2018.08.21随笔
- 【转】Maven 手动添加 JAR 包到本地仓库
- 文本编辑器Vim/Neovim任意代码执行漏洞(CVE-2019-12735)
- 基于PHP的超市库存管理系统
- wps转html乱码,wps转换成word后乱码
- 一次性发布20个音频IP,看喜马拉雅FM解锁品牌营销新姿势
- vue文字首尾相连无限轮播
- 慕课moocpython答案_中国大学慕课moocPython编程基础作业答案
- 写代码累了,读读这些书~
- 什么是嵌入式开发?嵌入式软件开发入门教程
- OpenCv 在Win7台式机上的摄像头无法拍照
热门文章
- matlab的主要功能与应用领域,MatLab的特点及应用领域?
- dingding(钉钉)+sonar(代码质量管理工具)通知并打包成docker容器运行
- android番茄钟计时器
- depot_tools在windows上用遇到的问题和RTC编译出错
- SAP: ZSD012 Send Billing Document to Customer with PDF Attachment
- android studio新闻界面,课内资源 - 基于Android Studio实现的新闻APP
- ckplayer播放器的style.zip(干货)
- 学习python用哪个app-python做app用什么工具
- MP4文件格式详解(ISO-14496-12/14)
- Typora自定义主题#简约风主题