博客
关于我
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/

你可能感兴趣的文章
NodeMCU教程 http请求获取Json中文乱码解决方案
查看>>
Nodemon 深入解析与使用
查看>>
NodeSession:高效且灵活的Node.js会话管理工具
查看>>
node~ http缓存
查看>>
node不是内部命令时配置node环境变量
查看>>
node中fs模块之文件操作
查看>>
Node中同步与异步的方式读取文件
查看>>
node中的get请求和post请求的不同操作【node学习第五篇】
查看>>
Node中的Http模块和Url模块的使用
查看>>
Node中自启动工具supervisor的使用
查看>>
Node入门之创建第一个HelloNode
查看>>
node全局对象 文件系统
查看>>
Node出错导致运行崩溃的解决方案
查看>>
Node响应中文时解决乱码问题
查看>>
node基础(二)_模块以及处理乱码问题
查看>>
node安装卸载linux,Linux运维知识之linux 卸载安装node npm
查看>>
node安装及配置之windows版
查看>>
Node实现小爬虫
查看>>
Node提示:error code Z_BUF_ERROR,error error -5,error zlib:unexpected end of file
查看>>
Node提示:npm does not support Node.js v12.16.3
查看>>