美文网首页
sort函数的使用

sort函数的使用

作者: 与时间共舞 | 来源:发表于2020-05-06 14:20 被阅读0次

    sort排序又叫快速排序(快排)
    1、需要引入头文件

    #include <algorithm>
    

    2、sort函数的引用

    1. 默认的sort函数是按升序排。
      sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址
    2. 可以自己写一个cmp函数,按特定意图进行排序。
      sort(a,a+n,cmp);

    1、sort排序之升序排列

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main(){
        int n;
        cin>>n;
        int a[n];
        for(int i=0; i<n; i++){
            cin>>a[i];
        }
        sort(a,a+n);
        for(int i=0; i<n; i++){
            cout<<a[i]<<endl;
        }
        return 0;
    }
    

    2、sort排序之降序排列

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int test(int x,int y){
        return x>y; //降序排列
    //  return x<y; //升序排列 
    }
    int main(){
        int n;
        cin>>n;
        int a[n];
        for(int i=0; i<n; i++){
            cin>>a[i];
        }
        sort(a,a+n,test);
        for(int i=0; i<n; i++){
            cout<<a[i]<<endl;
        }
        return 0;
    }
    

    3、sort排序之结构体排序

    /**
    现在有n名学的姓名,年龄和考试成绩,对这写数据进行排列
    要求: 分数按从高往低排序
          如果分数相同,按名字先后顺序进行排列 
    */ 
    #include <iostream>
    using namespace std;
    struct stu{
        int age,fen;
        string name;
    };
    //注意cmp的参数x,y的类型要和结构体stu类型相同 
    int cmp(stu x,stu y){//排序方法 
        if(x.fen>y.fen){
            return 1;
        }else if(x.fen==y.fen && x.name>y.name){
            return 1;
        }
        return 0;
    }
    int main(){
        int n;
        stu  st[1000];
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>st[i].name>>st[i].age>>st[i].fen; 
        }
        sort(st+1,st+n+1,cmp);//快排 
        for(int i=1;i<=n;i++){
            cout<<st[i].name<<" "<<st[i].age<<" "<<st[i].fen; 
        }
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:sort函数的使用

          本文链接:https://www.haomeiwen.com/subject/gmtwghtx.html