C++里对数据进行排序的方式有很多种,根据其算法各有特点,比如冒泡排序,插入排序,选择排序,桶排序等等。这些方法用起来十分不方便,于是今天我们来捋一捋比较方便的排序方法——sort
首先,我们先来捋一捋sort在英语里的意思
v.把…分类,挑选,整理
sort是一个内置函数,可以直接调用
其参数为sort([数组名],[数组名加上数组排序的个数],[排序规则](不写的话默认升序排列))
明确了他的意思之后,我们来看看代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[5,6,1,3];
cout<<sort(a,a+4);
return 0;
}
以上代码的运行结果为1356,可以看到sort函数对a数组进行了升序排列,使用非常的方便那么就有朋友要说了,我要是想降序怎么办呢
Sort函数自定义排序规则
首先我们需要一个返回值为布尔(bool)的函数,这个函数返回你想要的排序规则 ,举个例子
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
int a[5,6,1,3];
sort(a,a+4,cmp);
return 0;
}
以上程序的运行结果为6531,可以看到经过对排序规则的自定义,成功的改变了他的排序顺序。 return a>b表示排序的顺序为前面的数大于后面的数,也就是由大到小排列,降序
我们来做一道题模拟一下:
给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
输入:第一行为n (0 < n < 20),表示班里的学生数目;接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数
输出:把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格
直接上源码:
PS.第一次写,难免有不周到之处,敬请指出错误和不足
谢谢观看