博客
关于我
sort()排序
阅读量:662 次
发布时间:2019-03-15

本文共 1648 字,大约阅读时间需要 5 分钟。

1. 一维整数数组排序

  利用sort(数组起始位置,数组终止位置的下一位,排序方法)(其中排序方法可以不写)对一维数组进行排序,如果不写排序方法,会自动默认为从小到大。我先演示一哈不写排序方法的结果

#include
using namespace std;int main(){ //声明并定义一个无序数组 int num[] = { 1, 5, 2, 9, 11, 6, 7}; //计算出数组的长度 int length = sizeof(num)/sizeof(int); //对数组进行排序 sort(num, num + length); for(int i : num) printf("%d ", i);}

运行结果(看嘛,一眼就可以看出的从小到大)

在这里插入图片描述
  这个时候就有人要问了“要是我想从大到小排怎么办?”那就写排序方法撒。我们写一个函数,名称为“cmp”,我们设计成如果比较的两者前者大于后者就返回true,反之false。这样就可以实现从大到小排序。

#include
using namespace std;bool cmp(int A, int B){ return A > B;}int main(){ //声明并定义一个无序数组 int num[] = { 1, 5, 2, 9, 11, 6, 7}; //计算出数组的长度 int length = sizeof(num)/sizeof(int); //对数组进行排序 sort(num, num + length, cmp); //输出排序后的结果 for(int i : num) printf("%d ", i);}

2. 结构体排序

  我们知道了可以自己写判断谁大谁小的函数之后,我们就可以自己写这么一个函数,将其作为sort()的最后一个参数。假设这个时候我们需要对结构体进行排序,但是结构体可能带有多个参数。下面我们定义了一个带有姓名和年龄的学生类型的结构体。

//定义一个student类型,存储学生的姓名和年龄struct student{       string name;    int age;};

再自己创建几个数据进行排序

#include
using namespace std;//定义一个student类型,存储学生的姓名和年龄struct student{ string name; int age;};//利用cmp方法编写排序规定,这里我们根据年龄从小到大排序,如果年龄相同则按照姓名由大到小排序bool cmp(student A, student B){ if(A.age != B.age) //判断年龄是否相同 return A.age < B.age; return A.name > B.name;}int main(){ //创建一个装有4个学生姓名和年龄的数组 student s[4]; s[0].name = "WangLei"; s[0].age = 20; s[1].name = "XiaoWang"; s[1].age = 20; s[2].name = "LiGang"; s[2].age = 18; s[3].name = "ZhangSan"; s[3].age = 9; //对数组进行排序 sort(s, s+4, cmp); //输出排序后的结果 for(student i : s) cout<< i.name << " " << i.age << endl;}

End

转载地址:http://kydmz.baihongyu.com/

你可能感兴趣的文章
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP、CV 很难入门?IBM 数据科学家带你梳理
查看>>
NLP三大特征抽取器:CNN、RNN与Transformer全面解析
查看>>
NLP入门(六)pyltp的介绍与使用
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP度量指标BELU真的完美么?
查看>>
NLP的不同研究领域和最新发展的概述
查看>>
NLP的神经网络训练的新模式
查看>>
NLP采用Bert进行简单文本情感分类
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP项目:维基百科文章爬虫和分类【02】 - 语料库转换管道
查看>>
NLP:从头开始的文本矢量化方法
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
NLTK - 停用词下载
查看>>
nmap 使用总结
查看>>
nmap 使用方法详细介绍
查看>>
nmap使用
查看>>
nmap使用实战(附nmap安装包)
查看>>
Nmap哪些想不到的姿势
查看>>
Nmap扫描教程之Nmap基础知识
查看>>