sort函数是我们算法比赛中最简单的最快的一个算法,他的时间复杂度是nlogn,最坏的时候是n^2,基本思想是快速排序,但是被封装的时候进行了许多优化,所以基本达不到n^2的速度

那么我们如何使用好这个东西是一个非常关键的问题,因为我们打比赛的时候,可以说是不可能写出比sort还快的排序算法

用好sort我们需要学好如何重构(operator)和写cmp函数

其实,鄙人觉得,cmp和operator都是一个事,都是在排序的关键值上做文章,operator的用法,我也写过一篇bk来简单介绍了他的用法,在这里就不做过多介绍,cmp的用法和operator换汤不换药,operator用好了,cmp也就会了,下面我总结两个小的知识点,用处不大,当做扩展知识面,日后可能有用

1.friend,对于系统学过C++的同学可能很熟悉,但对于软外的同学,可能比较陌生,这个东西加在类和函数前面,将其变成友元函数或者友元类,如果你的operator写在了结构体里面,那么不加friend,外界是无法访问的,当然你也可以写一个全局的operator,但是坏处长着脑子的都知道,你写成全局的话,关键值从始至终就只是那一个了,不太灵活就,自己体会吧

2.排序经常给object排序,有的时候用到printf以%s的形式输出string类型的value,比如 string value,我们不能直接写printf("%s\n",value),我们应该写printf("%s\n",value.c_str());这是因为C++是C的发展,需要兼容,C里面是不包括string的,所以在C++中的string类中,写了c_str()这个函数,用来返回C的指针所指向的字符串,大体这么个意思,方便记忆,这里也说一下我怎么记这个函数名字的,因为你要兼容C语言,你打的是C++,所以你是不是方法得有个c啊,是不是说你是让c兼容的啊,是不是我们是对str进行操作,所以c_str()这个名不就出来了吗,我真是个小天才

关于algorithm的sort函数相关推荐

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

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

  2. C语言—sort函数比较大小的快捷使用--algorithm头文件下

    sort函数 一般情况下要将一组数从的大到小排序或从小到大排序,要定义一个新的函数排序. 而我们也可以直接使用在函数下的sort函数,只需加上头文件: #include<algorithm> ...

  3. c++简单排序算法(冒泡、选择以及调用algorithm中的sort函数)

    排序 冒泡排序 定义: 概述: 冒泡排序中,在每一轮的排序中,总能把最小或是最大的一个数字排到末端,然后下一次就不再次访问这个元素,直至所有元素排列完成. 代码: for (int i = 1; i ...

  4. C中的qsort函数和C++中的sort函数的理解与使用

    一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...

  5. C++ STL的sort 函数 以及自定义的比较函数

    没什么特别擅长的内容,先做个小笔记好了.在编程时,使用C++的标准模板库(STL)能节约工作量,增加代码的可读性,能灵活运用无疑会提高编程的效率,俗话说:Write less, create more ...

  6. 不可不知的STL sort函数实现原理

    sort函数一直以来被认为是快排,今天看到一篇文章,感觉自己知道的太少. 建议大家还是要去啃<STL源码剖析>,我也要去读了,先立个flag,后续1-2个月写STL源码剖析上得到的启发. ...

  7. qsort函数和sort函数

      做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错.STL里面有个sort函数,可以直接对数组排序 ...

  8. STL sort()函数详解

    西方有句谚语:不要重复发明轮子! STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已 ...

  9. numpy np.sort()函数(指定对某一轴进行排序,返回数组的排序副本)(成对数组不要用这个排,用哪个啥lexsort()或argsort()都行)

    指定对哪一层进行排序,如果需排序的是多维数组,特别是那种np.sort()貌似不太友好 from numpy\core\fromnumeric.py @array_function_dispatch( ...

  10. sort函数——利用函数实现快速排序c++

    有时候刷题常常会用到排序,每次都要从头写起的话太麻烦了,就找到了sort函数. 注: sort函数默认从小到大排序 如果想要指定排序顺序呢? sort( , , )第三个空填入less<> ...

最新文章

  1. linux查找项目中的问题,教你如何快速定位项目中慢查询[项目管理]
  2. 安装SQL2012 提示 setup account privileges Failed 解决办法
  3. android preference tab,Android SharedPreference - TabHost问题
  4. Leaflet中加载Geoserver发布的WMS服务显示地图
  5. 【树链剖分】软件管理(luogu 2146/金牌导航 树链剖分-2)
  6. MySQL为什么要用数字做自增主键?
  7. django后台管理--添加自定义action
  8. 品味FastDFS~目录
  9. sqlmap使用教程大全命令大全(图文)
  10. cad2018安装教程_AUTO CAD2018安装教程+安装包
  11. SpringCloud系列------Config-Server
  12. 计算机功能键名称,电脑键盘功能基础知识有哪些你知道吗
  13. 落花人独立,微雨燕双飞——晏几道《临江仙》
  14. 数学--数论--直角三角形--勾股数---奇偶数列法则 a^2+b^2=c^2
  15. C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP /MC协议与三菱FX5U/Q系列PLC通讯
  16. java好学么_java是什么好学吗
  17. zblog php wordpress,zblog和wordpress哪个好
  18. 都用无线技术,差距咋就这么大呢
  19. 应广单片机adc_应广单片机adc和pwm例程
  20. Wayland协议了解

热门文章

  1. 每天30分钟搞Software Rendering--(0)搜集资料,阅读,了解
  2. Office Web Apps开放测试
  3. 整理cin.getline与getline函数
  4. gateway 过滤器执行顺序_Spring Boot实战之:轻松搞定拦截器与过滤器
  5. python 接口自动化 recharge_python接口自动化测试
  6. 拓端tecdat|R语言用ARIMA模型预测巧克力的兴趣趋势时间序列
  7. Linux下source命令作用
  8. AttributeError: ‘str‘ object has no attribute ‘decode‘ model = keras.models.load_model
  9. yolo v4模型训练过程(超详细)
  10. [译] A Neural Algorithm of Artistic Style--图片风格化