C++数据排序

本文介绍了C++中内置函数sort的用法,包括基本升序排列以及如何通过自定义比较函数实现降序排序。并通过实例演示了如何按成绩从高到低对学生名单进行排序。
摘要由CSDN通过智能技术生成

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的非负整数

输出:把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格

直接上源码:

070b676eecb0437b9fe2ef31667be8fe.png

 PS.第一次写,难免有不周到之处,敬请指出错误和不足

谢谢观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值