c++sort函数的用法

原创 2017年12月13日 20:02:44
# include <cstdio> //c++使用scanf和printf要加的头文件
# include <algorithm>  //使用sort要加的头文件
# include <cstring> //使用字符串比较函数strcmp要加的头文件

using namespace std; //c++的命名空间,格式

bool cmp(int x,int y)  //自己定义的比较函数
{
    return x > y;
}

struct node
{
    int id;
    char name[30];
    int grade;

}student[20] = {{2,"BB",90},{1,"DD",95},{3,"AA",80},{4,"CC",90}};


bool cmp_node_1(struct node x,struct node y)  //按id排序
{
    return x.id < y.id;
}

bool cmp_node_2(struct node x,struct node y) //按name排序
{
    return strcmp(x.name,y.name) < 0;
}

bool cmp_node_3(struct node x,struct node y) //按grade排序
{
    return x.grade < y.grade;
}

bool cmp_node_4(struct node x,struct node y)
{
    if(x.grade == y.grade)
        return strcmp(x.name,y.name) > 0;
    return x.grade < y.grade;
}

int main()
{
    int a[6] = {45,2,9,12,5,15};

    printf("\n从小到大排序输出:\n");
    sort(a,a+6);
    for(int i = 0;i < 6;i++)
    {
        if(i) printf(" ");
        printf("%d",a[i]);
    }
    puts("");

    printf("\n从大到小排序输出: \n");
    sort(a,a+6,cmp);
    //调用自己定义的比较函数实现想要的排序方式
    for(int i = 0;i < 6;i++)
    {
        if(i) printf(" ");
        printf("%d",a[i]);
    }
    puts("");

    printf("\n\n按结构体数组id排序:\n");
    sort(student,student+4,cmp_node_1);

    for(int i = 0;i < 4;i++)
    {
        if(i) puts("");
        printf("%d %s %d",student[i].id,student[i].name,student[i].grade);
    }

    printf("\n\n按结构体数组name排序:\n");
    sort(student,student+4,cmp_node_2);

    for(int i = 0;i < 4;i++)
    {
        if(i) puts("");
        printf("%d %s %d",student[i].id,student[i].name,student[i].grade);
    }

    printf("\n\n按结构体数组grade排序:\n");
    sort(student,student+4,cmp_node_3);

    for(int i = 0;i < 4;i++)
    {
        if(i) puts("");
        printf("%d %s %d",student[i].id,student[i].name,student[i].grade);
    }

    printf("\n\n按结构体数组grade排序,如果grade相同按name逆字典序排序:\n");
    sort(student,student+4,cmp_node_4);

    for(int i = 0;i < 4;i++)
    {
        if(i) puts("");
        printf("%d %s %d",student[i].id,student[i].name,student[i].grade);
    }
    return 0;
}

/*================================
#######数组的名字代表的是首地址,而数组首地址是a[0],
####### 所以数组名字地址从0下标开始 ################

    sort函数有三个参数,
    1. 第一个参数表示排序数组的起始地址
    2. 第二个参数表示排序数组的结束地址
    3. 第三个参数表示比较规则(可以省略),
        但想要自己实现特定的比较方式就要自己定义一个返回bool值的比较函数

############排序后存放位置,是输入的起始地址和结束地址之间############

  sort函数不仅可以比较整数类型,还可以比较字符,结构体等等
  其内部是用快排实现,速度较快。
==================================*/
版权声明:本文为博主原创文章,未经博主允许不得转载。

C++sort函数的用法

C++sort()函数的用法 近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧! (一)为什么要用c++标准库里的排序函数 Sort()函数...
  • liuzuyi200
  • liuzuyi200
  • 2013年05月25日 20:37
  • 28859

c/c++语言中sort函数的使用方法

orz先扯一点没用的~~~ 因为一直是习惯用c的,两年之中并没有用多少c++,觉得c++实现的东西c语言也可以实现。然而大二暑期集训大一的小鲜肉们的过程中(直到讲排序算法之前,我还一直觉得排序掌握很...
  • Scarlett_geng
  • Scarlett_geng
  • 2015年08月08日 22:56
  • 5822

浅析C/C++中sort函数的用法

本文转自: 浅析C/C++中sort函数的用法         做项目的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的时间,还很有可...
  • WHEgqing
  • WHEgqing
  • 2015年01月06日 10:53
  • 3077

C++sort()函数的用法 及学习

Sort函数包含在头文件为#include的c++标准库中 Sort函数有三个参数: (1)第一个是要排序的数组的起始地址。 (2)第二个是结束的地址(最后一位要排序的地...
  • qq_33371073
  • qq_33371073
  • 2016年03月17日 11:22
  • 193

在C++中函数sort的用法及实例

做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复...
  • ccMaa
  • ccMaa
  • 2016年03月20日 16:57
  • 280

sort函数的用法(C++排序库函数的调用)

sort函数的用法(C++排序库函数的调用)
  • YinJianxiang
  • YinJianxiang
  • 2017年06月14日 20:57
  • 335

C++ 排序函数 sort(),qsort()的用法 / 同时可以学习回调函数

想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表:     函...
  • ybhjx
  • ybhjx
  • 2016年01月06日 23:40
  • 221

C++ sort()函数和C qsort()函数用法总结

C++sort函数 头文件:#include 用法:sort(begin,end,method);//如果method缺省,则默认从小到大排序用法示例: 1.缺省用法:从小到大排序 int ...
  • gl486546
  • gl486546
  • 2017年01月29日 22:13
  • 415

java 中List排序函数Collections.sort的用法详解

List排序函数Collections.sort 1.Java提供的默认排序算法 List list = new ArrayList(); list.add(53.6); list.add...
  • XiaoXiao_Yang77
  • XiaoXiao_Yang77
  • 2018年01月11日 16:14
  • 31

STL 中 sort 函数用法简介

来源:http://wenku.baidu.com/link?url=utWJ8Vbqd4YMIKG74SwwH2MARy88oASEGVY4Ja1dxMh6CpLY8m5SIco0aCHYzbjmt...
  • u012560612
  • u012560612
  • 2014年01月14日 19:14
  • 820
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++sort函数的用法
举报原因:
原因补充:

(最多只允许输入30个字)