C++ sort排序函数详解
在很多应用中,排序都是至关重要的。基于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排序函数详解相关推荐
- Python3 list 排序函数详解
Python3 list 排序函数详解 一. 列表的sort排序函数 函数原型: list.sort(key=None,reverse=False) 函数功能: 对原列表进行排序, ...
- c#sort升序还是降序_c# List的sort排序方法详解
诸如List<T>等泛型集合类,直接提供了sort()方法用于将集合中的元素进行排序. 但是,其前提是集合中存放的是可直接排序的基本类型,如List<int& ...
- linux文件名排序规则,Linux sort 排序使用详解
前阵子,写脚本时,用到sort来对文件排序:第一次没有达到所需的效果,原来是LANG设置问题,后来先export LANG=C,然后再sort就满足我的要求了. 某牛人总结的sort用法:http:/ ...
- 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. 三 ...
- Linux下的sort排序命令详解(二)
有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思.今天,我们就来搞定它--k选项! 1 准备素材 [root@FDMdevBI opt]# ...
- Oracle排序函数详解
Oracle提供的序号函数: 1.rownum rownum为最简单的序号 但是在order by之前就确定值. 举例: select rownum,--序号 year_name,--年份名称 mon ...
- 排序算法,最全的10大排序算法详解(Sort Algorithm)
文章目录 排序算法,最全的10大排序算法详解(Sort Algorithm) 排序算法分类 排序算法稳定性 时间复杂度(time complexity) 1#时间复杂度的意义 2#基本操作执行次数 如 ...
- C++ Sort函数详解
C++ Sort函数详解 前言 :sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使用 ...
- linux下sort命令使用详解---linux将文本文件内容加以排序命令
转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...
最新文章
- leetcode算法题--最长定差子序列
- JTable调整列宽
- 点评互联网创业的“南派”和“北派”
- CRM中间件里的CSA队列有什么用
- web.xml.jsf_面向初学者的JSF 2.0教程
- Lombok,AutoValue和Immutables,或如何编写更少,更好的代码返回
- Spring MVC 学习笔记一 HelloWorld
- 用计算机桁架各杆内力,运用AUTO CAD求解桁架内力?
- Exchange 2007 前端 IIS 内存占用过高
- 以前自己用SDL写的一个小游戏:QuadraPop
- 德国计算机专业英语授课,德国留学——细数德国亚琛工大的英语授课硕士专业...
- CSS 3 动画 实现图片动态切换
- android分析声音中的节奏,[AndroidTips]调用TextToSpeech朗读的时候怎么中间停顿
- Unity Mesh网格编程(三) Shader实现水面或旗帜飘扬效果
- 华为微认证华为云计算服务实践稳过 笔记资料
- 由ANSI标准定义的C语言关键字,C语言32个关键字详解
- 《游戏引擎架构》试读感想
- 广东公需科目公需课十四五答案考试查询器
- Google Cloud 发起“Data Cloud Alliance”新联盟
- opencv c++ Harris角点检测、shi-tomasi角点