在很多应用中,排序都是至关重要的。基于C语言的经典排序算法有很多(冒泡排序、快速排序、插入排序、选择排序等)

一、sort函数描述

在基于C++的实际应用中(支持 < 运算符的语言)已经为我们提供了一个已经实现好的排序工具——sort()

当我们要使用它时,需要先引入一个算法库——<algorithm>

sort函数可以排序任何类型的元素,包括我们自己定义的结构体

它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)

二、sort函数用法

Sort函数有三个参数:(第三个参数可不写)
(1)第一个是要排序的数组的起始地址
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序

有两种方式可以进行降序

a:使用greater<int>() // 其中<int>表示待排序的数组中的元素类型为int

b:自定义降序函数,作为sort函数的第三个参数

三、sort函数实现

两个参数实现

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>using namespace std;int main()
{vector<string> sArray = { "13","12A","A93","936","1234","23" };sort(sArray.begin(), sArray.end());for (auto s : sArray){cout << s << " ";}cout << endl;system("pause");return 0;
}

三个参数实现

库函数greater<string>()

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>using namespace std;int main()
{vector<string> sArray = { "13","12A","A93","936","1234","23" };sort(sArray.begin(), sArray.end(), greater<string>()); // 使用greater<string>()for (auto s : sArray){cout << s << " ";}cout << endl;system("pause");return 0;
}

自定义函数compare

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>using namespace std;bool compare(string s1, string s2)
{return s1.size() > s2.size();
}int main()
{vector<string> sArray = { "13","12A","A93","936","1234","23" };sort(sArray.begin(), sArray.end(), compare); // 自定义函数comparefor (auto s : sArray){cout << s << " ";}cout << endl;system("pause");return 0;
}

C++ sort排序函数详解相关推荐

  1. Python3 list 排序函数详解

    Python3 list 排序函数详解 一.           列表的sort排序函数 函数原型: list.sort(key=None,reverse=False) 函数功能: 对原列表进行排序, ...

  2. c#sort升序还是降序_c# List的sort排序方法详解

    诸如List&ltT&gt等泛型集合类,直接提供了sort()方法用于将集合中的元素进行排序. 但是,其前提是集合中存放的是可直接排序的基本类型,如List&ltint& ...

  3. linux文件名排序规则,Linux sort 排序使用详解

    前阵子,写脚本时,用到sort来对文件排序:第一次没有达到所需的效果,原来是LANG设置问题,后来先export LANG=C,然后再sort就满足我的要求了. 某牛人总结的sort用法:http:/ ...

  4. Oracle 分组排序函数详解 (row_number、rank、dense_rank)

    文章目录 1 概述 2 分类 2.1 排序函数 2.2 分组子句 1 概述 1. 完整格式(1) row_number() over(partition by 列1 order by 列2) 2. 三 ...

  5. Linux下的sort排序命令详解(二)

    有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思.今天,我们就来搞定它--k选项! 1 准备素材 [root@FDMdevBI opt]# ...

  6. Oracle排序函数详解

    Oracle提供的序号函数: 1.rownum rownum为最简单的序号 但是在order by之前就确定值. 举例: select rownum,--序号 year_name,--年份名称 mon ...

  7. 排序算法,最全的10大排序算法详解(Sort Algorithm)

    文章目录 排序算法,最全的10大排序算法详解(Sort Algorithm) 排序算法分类 排序算法稳定性 时间复杂度(time complexity) 1#时间复杂度的意义 2#基本操作执行次数 如 ...

  8. C++ Sort函数详解

    C++ Sort函数详解 前言 :sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使用 ...

  9. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

最新文章

  1. leetcode算法题--最长定差子序列
  2. JTable调整列宽
  3. 点评互联网创业的“南派”和“北派”
  4. CRM中间件里的CSA队列有什么用
  5. web.xml.jsf_面向初学者的JSF 2.0教程
  6. Lombok,AutoValue和Immutables,或如何编写更少,更好的代码返回
  7. Spring MVC 学习笔记一 HelloWorld
  8. 用计算机桁架各杆内力,运用AUTO CAD求解桁架内力?
  9. Exchange 2007 前端 IIS 内存占用过高
  10. 以前自己用SDL写的一个小游戏:QuadraPop
  11. 德国计算机专业英语授课,德国留学——细数德国亚琛工大的英语授课硕士专业...
  12. CSS 3 动画 实现图片动态切换
  13. android分析声音中的节奏,[AndroidTips]调用TextToSpeech朗读的时候怎么中间停顿
  14. Unity Mesh网格编程(三) Shader实现水面或旗帜飘扬效果
  15. 华为微认证华为云计算服务实践稳过 笔记资料
  16. 由ANSI标准定义的C语言关键字,C语言32个关键字详解
  17. 《游戏引擎架构》试读感想
  18. 广东公需科目公需课十四五答案考试查询器
  19. Google Cloud 发起“Data Cloud Alliance”新联盟
  20. opencv c++ Harris角点检测、shi-tomasi角点

热门文章

  1. java判断文件结束_关于java读取文件时,如何判断读取文件是否到达末尾?
  2. python学习第一站:计算机基础
  3. bongo cat mver怎么缩小?bongo cat mver调整大小
  4. 帧同步(LockStep)该如何反外挂
  5. 这回又来个 ionic2 的微信支付!(遇到一些莫名的BUG)
  6. ElasticSearch 动态映射和静态映射,以及四种字段类型
  7. MySQL数据库(小白入门版)
  8. 模电——三极管的三种基本组态对比
  9. Python3-判断输入的三个数字能否组成三角形
  10. python字符串反斜杠结尾_以反斜杠结尾的字符串出错