• sort与qsort


    一、sort:

    1、头文件#include
    2、格式 sort(arry,arry + n,cmp) 说明:arry为数组名(即首元素地址)、n为数组中元素个数、cmp是自己定义的函数。因为sort默认升序排序,通过自己定义的cmp我们可以实现降序、二位排序等操作。
    3、应用:
      a、字符数组char:
    #include<iostream>
    #include<algorithm> using namespace std; int main() { char a[11]={'b','a','v','r','f','d','j','t','r','e'}; sort(a,a+10);//默认升序 cout<<a; }
    #include<iostream>
    #include<algorithm>
    using namespace std;
    bool cmp(char a,char b)//自己定义cmp函数
    {
        return a>b;//a
    }
    int main()
    {
        char a[11]={'r','s','g','d','d','h','j','s','h','d'};
        sort(a,a+11,cmp);
        cout<<a;
    }
    b、对double、int等类型数据排序同上模型,只需改变一下数据格式。
     c、对结构体按要求排序#include<iostream>
    #include<algorithm>
    #define n 5 
    using namespace std; 
    struct data { int a; int b; int c; }; 
    bool cmp(data x,data y)
    { 
     if(x.a!=y.a) return x.a>y.a;
     if(x.b!=y.b) return x.b>y.b;
     if(x.c!=y.c) return x.c>y.c;
    }
    int main() 
    { 
     int i; data array[n]; 
     for(i=0;i
     cin>>array[i].a>>array[i].b>>array[i].c; 
     sort(array,array+n,cmp); 
     for(i=0;i
     cout<<array[i].a<<' '<<array[i].b<<' '<<array[i].c<<endl; return 0;
     }
    二、qsort
    1、头文件#incldue<algorithm>
    2、格式void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *))
      说明:base为数组名、nelem为数组元素个数、width为数组规模、fcmp是自己定义的函数(和sort一样)
    3、应用:(对不同类型数据进行排序是只需改变一下数据类型)
    #include<iostream> 
    #include<algorithm> 
    using namespace std; 
    int comp(const void*a,const void *b) 
    { 
     return *(int*)a-*(int*)b; 
    } 
    int main() 
    { 
     int i; int a[111]={3,1,4,3,4,5,6,4,2,7}; 
     qsort(a,3,sizeof(a[0]),comp); 
     for(i=0;i<10;i++) 
     cout<<a[i]<<' '; 
    return 0; 
    }  
    注:1、sort与qsort都可以通过改变参数从而对数组部分排序。
        2、sort的比较函数返回值是大小关系,qsort返回值可以是大小关系也可以是真或假。(目前测试是这样,待定????)
        3、sort的比较函数中参数可以是相应的数据类型,qsort中的参数是指针
  • 相关阅读:
    git常用命令
    Laravel框架数据库CURD操作、连贯操作总结
    Laravel 5 系列入门教程(四)【最适合中国人的 Laravel 教程】【完结】
    Laravel 5 系列入门教程(三)【最适合中国人的 Laravel 教程】
    Laravel 5 系列入门教程(二)【最适合中国人的 Laravel 教程】
    Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】
    linux环境下安装nginx步骤
    关于C++中的虚拟继承的一些总结
    C++中拷贝构造函数
    C++之类与对象(3)
  • 原文地址:https://www.cnblogs.com/Neptunes/p/3265096.html
Copyright © 2020-2023  润新知