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 的使用相关推荐

  1. C++中std::sort/std::stable_sort/std::partial_sort的区别及使用

    某些算法会重排容器中元素的顺序,如std::sort.调用sort会重排输入序列中的元素,使之有序,它默认是利用元素类型的<运算符来实现排序的.也可以重载sort的默认排序,即通过sort的第三 ...

  2. boost::partial_sort相关的测试程序

    boost::partial_sort相关的测试程序 实现功能 C++实现代码 实现功能 boost::partial_sort相关的测试程序 C++实现代码 #include <boost/r ...

  3. 【STL】算法 — partial_sort

    partial_sort接受一个middle迭代器,使序列中的middle-first个最小元素以递增顺序排序.置于[first, middle)内.以下是測试代码: #include <ios ...

  4. sort()、stable_sort()、partial_sort()、nth_element()、greater()、is_sorted()

    sort(a, a+5); // 默认从小到大,int数组的排序 sort(v.begin(), v.end()); // vector数组排序 sort中使用的是快排和插排 stable_sort( ...

  5. std::partial_sort 用法

    描述:        对容器的前部分元素进行排序. 定义: template< class RandomIt > void partial_sort( RandomIt first, Ra ...

  6. [5 算法] 31. 了解各种排序选择(partition,stable_partition,nth_element,partial_sort,sort,stable_sort)

    1 完全排序sort 排序首先想到的是sort,但它并非在任何场合都是完美的,因为有时你不需要一个完全的排序. 2 部分排序partial_sort 如果你有一个存放Widget的vector,你需要 ...

  7. 理解你的排序操作(stable_sort,sort,partial_sort,nth_element,stable_partition,partition)

    排序一直是数据结构中的常用算法,STL提供的排序算法非常丰富,如何有效使用就值得探讨.在网上没有找到条款31的翻译,于是我自己翻译了.--Winter 如何进行排序?让我数数有几种方法. 一旦程序员需 ...

  8. C++ algorithm的sort函数总结

    sort函数 sort对给定区间进行排序,支持各种数据类型,迭代器,结构体,自定义排序规则 stable_sort 对给定区间进行稳定排序,且可保证相等元素的原本相对次序在排序后保持不变 partia ...

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

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

最新文章

  1. python棋盘放米循环结构_Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)...
  2. es分布式搜索引擎在几十亿数据量级的场景下如何优化查询性能
  3. 【深度学习笔记】零基础入门深度学习必备知识
  4. Generator 函数的含义与用法
  5. 用Cython加速Python代码,快到起飞!
  6. Centos7.5 安装 mysql 5.7 ( 卸载自带 MariaDB)(实测)
  7. Vue关于axios跨域问题的解决
  8. 标准模板库 STL—— set 列传
  9. iOS中使用URL Scheme进行App跳转
  10. C语言编程方法技巧,C语言编程小技巧分享
  11. 【R语言】logistic回归(二)多因素logistic回归
  12. kindlefire刷安卓系统_[原创]安卓4.0完美运行 Kindle Fire刷机教程
  13. Android 查看是否支持指定解码器(H265)
  14. Redis 增加互斥锁
  15. 在Letax中使用enumerate编辑 Step1 , Step2, ..... ,并设置缩进
  16. 【论文解读】(2019-EMNLP)Tackling Long-Tailed Relations and Uncommon Entities in Knowledge Graph Completi
  17. configure: error: Package requirements (oniguruma) were not met: No package ‘oniguruma‘ found
  18. 【目标检测】基于matlab GUI背景差分算法视频运动物体跟踪【含Matlab源码 1915期】
  19. 基于Unity开发实现的坦克游戏设计
  20. 从国外某著名DNN 知情人士 Nina's Blog上看到一些有用的文章,在此记录一下,也为国内DNN,问题搜索,出一点力

热门文章

  1. 基于TCAM 的高速路由查找
  2. C语言学习笔记22/08/21
  3. 空间三点定圆的解算过程
  4. 报错:NoSuchAlgorithmException: Algorithm HmacSHA1 not available
  5. c语言api获取百度地图,H5调用百度地图API获取地理位置
  6. ArcGIS学习网站
  7. HTML:网页设计案例4
  8. org.eclipse.core.runtime.IPath报错
  9. markdown笔记(一)—— 首行缩进和换行
  10. 【学习笔记】Android基础知识回顾