partial_sort 的使用
partial_sort 的使用
partial_sort 是C++ STL 算法组件中的其中一个算法,其作用是对序列局部元素进行排序,默认排序是升序。它有两个重载函数。要使用partial_sort 需要引用头文件 algorithm。
下面是一个例子:
引用头文件,main 方法,容器的定义、赋值与输出,partial_sort 的调用。
代码:
#include <iostream>
#include <vector>//vector
#include <algorithm>
#include <time.h> //随机数
using namespace std;//自定义排序比较方法,降序
bool func(int i, int j) { return (i > j); }void main()
{//定义容器vector<int>vec;srand(time(0));//随机数//赋值for (int i = 0; i <10; i++){int num = rand() %100;vec.push_back(num);}//迭代器vector<int>::iteratorvi;//输出cout << "局部排序前:" <<endl;for (vi = vec.begin();vi < vec.end(); vi++) { cout << *vi << '\t'; }cout << endl;// 局部排序,默认排序partial_sort(vec.begin(),vec.begin() + 5, vec.end());// 输出cout << "局部排序,排序后:"<< endl;for (vi = vec.begin();vi < vec.end(); vi++) { cout << *vi << '\t'; }cout << endl;// 全部排序,默认排序partial_sort(vec.begin(),vec.end(), vec.end());// 输出cout << "全部排序后:" <<endl;for (vi = vec.begin();vi < vec.end(); vi++) { cout << *vi << '\t'; }cout << endl;// 局部排序,自定义排序partial_sort(vec.begin(),vec.begin() + 5, vec.end(), func);// 输出cout << "局部排序,自定义降序:"<< endl;for (vi = vec.begin();vi < vec.end(); vi++) { cout << *vi << '\t'; }cout << endl;// 全部排序,自定义排序partial_sort(vec.begin(),vec.end(), vec.end(), func);// 输出cout << "全部排序,自定义降序:"<< endl;for (vi = vec.begin();vi < vec.end(); vi++) { cout << *vi << '\t'; }cout << endl;
}
运行结果:
partial_sort 的两个重载:
partial_sort(排序的起始位置,排序的结束位置,查找的结束位置);
partial_sort(排序的起始位置,排序的结束位置,查找的结束位置,自定义排序比较方法);
注意:排序的结束位置必须在排序的起始位置和查找的结束位置之间。
从运行结果来看,
对局部进行排序时,序列的前n个最小的元素放在序列的前n个位置,其余的放在序列的后面未进行排序。
以上。
感谢您的浏览。
partial_sort 的使用相关推荐
- C++中std::sort/std::stable_sort/std::partial_sort的区别及使用
某些算法会重排容器中元素的顺序,如std::sort.调用sort会重排输入序列中的元素,使之有序,它默认是利用元素类型的<运算符来实现排序的.也可以重载sort的默认排序,即通过sort的第三 ...
- boost::partial_sort相关的测试程序
boost::partial_sort相关的测试程序 实现功能 C++实现代码 实现功能 boost::partial_sort相关的测试程序 C++实现代码 #include <boost/r ...
- 【STL】算法 — partial_sort
partial_sort接受一个middle迭代器,使序列中的middle-first个最小元素以递增顺序排序.置于[first, middle)内.以下是測试代码: #include <ios ...
- sort()、stable_sort()、partial_sort()、nth_element()、greater()、is_sorted()
sort(a, a+5); // 默认从小到大,int数组的排序 sort(v.begin(), v.end()); // vector数组排序 sort中使用的是快排和插排 stable_sort( ...
- std::partial_sort 用法
描述: 对容器的前部分元素进行排序. 定义: template< class RandomIt > void partial_sort( RandomIt first, Ra ...
- [5 算法] 31. 了解各种排序选择(partition,stable_partition,nth_element,partial_sort,sort,stable_sort)
1 完全排序sort 排序首先想到的是sort,但它并非在任何场合都是完美的,因为有时你不需要一个完全的排序. 2 部分排序partial_sort 如果你有一个存放Widget的vector,你需要 ...
- 理解你的排序操作(stable_sort,sort,partial_sort,nth_element,stable_partition,partition)
排序一直是数据结构中的常用算法,STL提供的排序算法非常丰富,如何有效使用就值得探讨.在网上没有找到条款31的翻译,于是我自己翻译了.--Winter 如何进行排序?让我数数有几种方法. 一旦程序员需 ...
- C++ algorithm的sort函数总结
sort函数 sort对给定区间进行排序,支持各种数据类型,迭代器,结构体,自定义排序规则 stable_sort 对给定区间进行稳定排序,且可保证相等元素的原本相对次序在排序后保持不变 partia ...
- C++拾取——使用stl标准库实现排序算法及评测
今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...
最新文章
- python棋盘放米循环结构_Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)...
- es分布式搜索引擎在几十亿数据量级的场景下如何优化查询性能
- 【深度学习笔记】零基础入门深度学习必备知识
- Generator 函数的含义与用法
- 用Cython加速Python代码,快到起飞!
- Centos7.5 安装 mysql 5.7 ( 卸载自带 MariaDB)(实测)
- Vue关于axios跨域问题的解决
- 标准模板库 STL—— set 列传
- iOS中使用URL Scheme进行App跳转
- C语言编程方法技巧,C语言编程小技巧分享
- 【R语言】logistic回归(二)多因素logistic回归
- kindlefire刷安卓系统_[原创]安卓4.0完美运行 Kindle Fire刷机教程
- Android 查看是否支持指定解码器(H265)
- Redis 增加互斥锁
- 在Letax中使用enumerate编辑 Step1 , Step2, ..... ,并设置缩进
- 【论文解读】(2019-EMNLP)Tackling Long-Tailed Relations and Uncommon Entities in Knowledge Graph Completi
- configure: error: Package requirements (oniguruma) were not met: No package ‘oniguruma‘ found
- 【目标检测】基于matlab GUI背景差分算法视频运动物体跟踪【含Matlab源码 1915期】
- 基于Unity开发实现的坦克游戏设计
- 从国外某著名DNN 知情人士 Nina's Blog上看到一些有用的文章,在此记录一下,也为国内DNN,问题搜索,出一点力