sort函数 订阅
sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include的c++标准库中。 [1] 展开全文
sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include的c++标准库中。 [1]
信息
外文名
sort Function
头文件
#include
所属范畴
C++
用    途
对给定区间所有元素进行排序
中文名
sort函数
功    能
升序、降序
sort函数sort函数概述
Sort(start,end,cmp)(1)start表示要排序数组的起始地址;(2)end表示数组结束地址的下一位;(3)cmp用于规定排序的方法,可不填,默认升序。sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。一般是直接对数组进行排序,例如对数组a[10]排序,sort(a,a+10)。而sort函数的强大之处在可与cmp函数结合使用,即排序方法的选择。 [2]  为什么要用c++标准库里的排序函数?sort()函数是c++一种排序方法之一,相较冒泡排序和选择排序所带来的执行效率不高的问题,sort()函数使用的排序方法是类似于快速排序的方法,时间复杂度为n*log2(n),执行效率较高。 [3]  sort函数见下表: [4] 
收起全文
精华内容
下载资源
问答
  • sort函数

    万次阅读 多人点赞 2019-09-13 23:20:35
    3、sort函数有三个参数: (1)要排序数组的起始地址 (2)要排序数组的最后一个数据元素的下一个地址 (3)排序方法,如果没有排序方法的话,默认从小到大排序 二、实例 1、sort函数实现数的排序 #...

    一、简介

    1、头文件:#include<algorithm>

    2、时间复杂度:类似于快排,为nlog(2)n,效率较高

    3、sort函数有三个参数:

        (1)要排序数组的起始地址

        (2)要排序数组的最后一个数据元素的下一个地址

        (3)排序方法,如果没有排序方法的话,默认从小到大排序

    二、实例

    1、sort函数实现数的排序

    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #include<algorithm>
    using namespace std;
    bool cmp(int a,int b)///实现从大到小排序的比较函数
    {
        return a>b;
    }
    
    int main()
    {
        int i,j;
        int arr[10]={1,33,56,74,34,34,555,43,43,343};
        sort(arr,arr+10,cmp);
        for(i=0;i<10;i++)
            cout<<arr[i]<<" "<<endl;
        return 0;
    }
    

    2、sort函数实现字符串的排序(根据长度,字母顺序两种情况)

     (1)sort函数对string内的字符进行排序(string为字符串类型数据)

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    bool cmp(char a,char b)///比较函数
    {
        return a>b;
    }
    int main()
    {
        string s;
        cin>>s;
        sort(s.begin(),s.end());///从小到大
        cout<<s<<endl;
        sort(s.begin(),s.end(),cmp);///从大到小
        cout<<s<<endl;
        cout<<s.length()<<endl;///字符串长度函数
    }
    

    (2)sort对一维字符数组内的字符进行排序

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    bool cmp(char a,char b)///比较函数
    {
        return a>b;
    }
    int main()
    {
        char a[100];
        scanf("%s",a);
        sort(a,a+strlen(a));///从小到大
        cout<<a<<endl;
        sort(a,a+strlen(a),cmp);///从大到小
        cout<<a<<endl;
        cout<<strlen(a)<<endl;///输出字符数组a的长度
    
    }
    

     (3)sort对string类型的数组按照字典序排序

    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    bool cmp(string a,string b)///按照字典序从大到小排序
    {
        return a>b;
    }
    int main()
    {
        int i,j;
        string  s[12]=
        {
            "January",
            "February",
            "March",
            "April",
            "May",
            "June",
            "July",
            "August",
            "September",
            "October",
            "November",
            "December"
        };
        sort(s,s+12);///字符串默认按照字典序从小到大排序,数默认按照大小从小到大排序
      for(i=0;i<12;i++)
            cout<<s[i]<<endl;
    
            cout<<endl;
        sort(s,s+12,cmp);///按照字典序从大到小排序
        for(i=0;i<12;i++)
            cout<<s[i]<<endl;
      return 0;
    }
    

    (4)sort对char类型的二维数组进行字典序排序

       错误,不能这样做。同样也不能进行根据字符串长度的排序

       解决方法有:1、使用qsort  2、改用string

    (5)sort对string类型的数组根据长度进行排序

    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    bool cmp1(string a,string b)///按照长度从小到大排序
    {
        return a.length()<b.length();
    }
    bool cmp2(string a,string b)///按照长度从大到小排序
    {
        return a.length()>b.length();
    }
    int main()
    {
        int i,j;
        string  s[12]=
        {
            "January",
            "February",
            "March",
            "April",
            "May",
            "June",
            "July",
            "August",
            "September",
            "October",
            "November",
            "December"
        };
        sort(s,s+12,cmp1);///按照长度从小到大排序
      for(i=0;i<12;i++)
            cout<<s[i]<<endl;
    
            cout<<endl;
        sort(s,s+12,cmp2);///按照长度从大到小排序
        for(i=0;i<12;i++)
            cout<<s[i]<<endl;
      return 0;
    }
    

    6、对结构体数组进行排序(根据结构体中的某元素)

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int n=3;
    struct Student
    {
            char name[20];///姓名
            char id[20]; ///学号
            int score;  ///成绩
            int r;          ///排名
    }stu[100010];
    /*
    (1)如果两个学生的分数不同,则分数高的排在前面
    (2)否则,将姓名字典序小的排在前面
    */
    bool cmp(Student a,Student b)
    {
        if(a.score!=b.score) return a.score>b.score;
        else return strcmp(a.name,b.name)<0;
    }
    
    /*
    排名的实现,一般规则为:分数不同,排名不同,分数相同排名相同但占用同一个排位
    例如:分数为90,88,88,88,86;排名为1,2,2,2,5
    */
    void Rank()
    {
        int i,j;
        stu[0].r=1;
        for(i=1;i<n;i++)
        {
            if(stu[i].score==stu[i-1].score) stu[i].r=stu[i-1].r;
            else stu[i].r=i+1;
        }
    }
    int main()
    {
        int i,j;
        stu[0]={"guo","001",82,3};///这样赋值不对,算了,以后再改吧
        stu[1]={"zhang","002",82,3};
        stu[2]={"wu","003",99,2};
        sort(stu,stu+n,cmp);
        for(i=0;i<n;i++)
            cout<<stu[i]<<endl;
    }
    

     

    展开全文
  • Sort函数

    千次阅读 2018-08-07 20:49:19
    sort函数的用法(C++排序库函数的调用) 对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了。 (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了...

    *Sort *函数
    用途:对给定区间所有元素进行排序
    头文件**#include<algorithm>**
    这里写图片描述

    sort函数的用法(C++排序库函数的调用)
    对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了。
    (一)为什么要用c++标准库里的排序函数
    Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的
    冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于
    快排的方法,时间复杂度为n*log2(n),执行效率较高!
    (二)c++标准库里的排序函数的使用方法
    I)Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序
    方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!
    II)Sort函数有三个参数:
    (1)第一个是要排序的数组的起始地址。
    (2)第二个是结束的地址(最后一位要排序的地址的下一地址)
    (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个
    参数,此时默认的排序方法是从小到大排序。
    Sort函数使用模板:
    Sort(start,end,排序方法)
    下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!
    例一:sort函数没有第三个参数,实现的是从小到大
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
          int a[10]={9,6,3,8,5,2,7,4,1,0};
          for(int i=0;i<10;i++)
          cout<<a[i]<<endl;
          sort(a,a+10);
          for(int i=0;i<10;i++)
                   cout<<a[i]<<endl;
           return 0;
    }
    例二
    通过上面的例子,会产生疑问:要实现从大到小的排序肿么办?
    这就如前文所说需要在sort()函数里的第三个参数里做文章了,告诉程序我要从大到小排序!
    需要加入一个比较函数compare(),此函数的实现过程是这样的
    
    bool compare(int a,int b)
    {
    return a>b;
    }
    
    这就是告诉程序要实现从大到小的排序的方法!
    #include<iostream>
    #include<algorithm>
    using namespace std;
    bool compare(int a,int b)
    {
    return a>b;
    }
    int main()
    {
            int a[10]={9,6,3,8,5,2,7,4,1,0};
            for(int i=0;i<10;i++)
                cout<<a[i]<<endl;
            sort(a,a+10,compare);//在这里就不需要对compare函数传入参数了,这是规则
            for(int i=0;i<10;i++)
                 cout<<a[i]<<endl;
            return 0;
    }
    假设自己定义了一个结构体node
    struct node
    {
        int a;
        int b;
        double c;
    }
    有一个node类型的数组node arr[100],想对它进行排序:先按a值升序排列,如果a值相同,再按b值降序排列,如果b还相同,就按c降序排列。就可以写这样一个比较函数:
    以下是代码片段:
    bool cmp(node x,node y)
    {
          if(x.a!=y.a) return x.a<y.a;
          if(x.b!=y.b) return x.b>y.b;
           return x.c>y.c;
    }
    展开全文
  • sort函数用法

    万次阅读 多人点赞 2018-04-10 09:30:54
    sort函数是一个非常强大的排序函数用法如下://使用sort函数进行升序排序#include &lt;stdio.h&gt;#include &lt;algorithm&gt;//sort函数所在的函数库using namespace std;//sort所在的标准命名空间...

    sort函数是一个非常强大的排序函数

    用法如下:

    //使用sort函数进行升序排序
    #include <stdio.h>
    #include <algorithm>//sort函数所在的函数库
    using namespace std;//sort所在的标准命名空间
    int main()
    {
    int n;
    int i;
    int buffer[100];
    while(~scanf("%d",&n))
    {
    for (i=0;i<n;i++)
    scanf("%d",&buffer[i]);
    sort(buffer,buffer+n);//快速排序升序方式
    for (i=0;i<n;i++)
    printf("%d ",buffer[i]);
    printf("\n");
    }

    }


    //使用sort函数的重载方式进行降序排序
    #include <stdio.h>
    #include <algorithm>
    using namespace std;

    bool cmp(int x,int y)//重新定义排序方式,记住
    {
    return x>y;
    }

    void main()
    {
    int n;
    int i;
    int buffer[100];
    while (~scanf("%d",&n))
    {
    for (i=0;i<n;i++)
    scanf("%d",&buffer[i]);
    sort(buffer,buffer+n,cmp);//sort函数的重载方式,cmp重新定义排序方式
    for (i=0;i<n;i++)
    printf("%d ",buffer[i]);
    printf("\n");
    }

    }


    //用sort函数实现结构体数据的升序排序

    //排序规则:

    //1.分数升序排序

    //2.分数相同,姓名升序排序

    //3.分数姓名都相同,年龄升序排序

    #include <stdio.h>
    #include <algorithm>
    using namespace std;


    struct E
    {
    char name[101];
    int age;
    int score;
    }buffer[100];


    bool cmp(E a,E b)
    {
    if (a.score!=b.score)
    return a.score<b.score;//分数不等,按分数递增排序
    int tmp = strcmp(a.name,b.name);//strcmp是字符串比较函数,相等返回0,大于返回1,小于返回-1
    if(tmp!=0)
    return tmp<0;//分数相等,逆转字符串比较值,实现按姓名递增排序
    else return a.age<b.age;//分数姓名都相等,按年龄递增排序
    }


    void main()
    {
    int n;
    int i;
    while (~scanf("%d",&n))
    {
    for (i=0;i<n;i++)
    scanf("%s %d %d",&buffer[i].name,&buffer[i].age,&buffer[i].score);
    sort(buffer,buffer+n,cmp);
    for (i=0;i<n;i++)
    printf("%s %d %d\n",buffer[i].name,buffer[i].age,buffer[i].score);
    printf("\n");
    }
    }


    这里有更详细的解释:

    sort函数详解




    展开全文
  • 主要介绍了matlab中 sort 函数用法 的相关资料,需要的朋友可以参考下
  • c++sort函数

    千次阅读 多人点赞 2019-03-03 23:20:12
    sort函数 函数名 功能 sort 对给定区间进行排序 stable_sort 对给定区间进行稳定排序 partial_sort 对给定区间部分元素排序 partial_sort_copy 对给定区间部分元素排序并复制 partition 使得符合...

    sort函数

    函数名功能
    sort对给定区间进行排序
    stable_sort对给定区间进行稳定排序
    partial_sort对给定区间部分元素排序
    partial_sort_copy对给定区间部分元素排序并复制
    partition使得符合某个条件的元素放在前面
    stable_partition相对稳定的使得符合某个条件的元素放在前面

    默认为非降排序

    int型 非降序排序

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int main()
    {
        int a[5]={1,3,4,9,6};
        sort(a,a+5);
        for(int i=0;i<5;i++)
                cout<<a[i]<<' ';
        return 0;
     }   
    

    对int型非升序(降序 >=)排序

    库里面有封装好其他比较函数
    equal_to<Type>、not_equal_to<Type>
    greater<Type>、greater_equal<Type>
    less<Type>、less_equal<Type>
    
    也可以自己定义
    bool cmp_p(int a,int b)//降序
    {
      return a>b;
    }
    
    int  main ( )
    {
          int a[10]={2,4,15,56,84,64,21,35,14,31},i;
          for(i=0;i<10;i++)
              cout<<a[i]<<endl;
          sort(a,a+10,greater<int>());//降序
          for(i=0;i<10;i++)
              cout<<a[i]<<endl;
          return 0;
    }
    

    string型 按字典序排序

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int main()
    {
        string str("hello world");
        sort(str.begin(),str.end());
        cout<<str;
        return 0;
     } 
    

    结构体排序,即便是升序,也不能省略后面的方法cmp_p

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    
    const int maxn=5e4;
    struct tnode{
    	int x,y;
    }p[maxn+10];
    
    bool cmp_p(tnode a,tnode b)
    {
      return a.x<b.x;
    }
    
    int main()
    {
    
    
      int n,i,l,r;
      scanf("%d",&n);
      for(i=1;i<=n;i++)
        scanf("%d%d",&p[i].x,&p[i].y);
      sort(p+1,p+n+1,cmp_p);//按x排序,升序
      return 0;
    }
    
    展开全文
  • python中sort函数的使用

    万次阅读 多人点赞 2019-08-26 18:17:06
    转自...我们需要对List进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序 方法2....sort函数定义:sort(cmp=None, key=None, rev...
  • 主要介绍了JS中sort函数排序用法,结合实例形式详细分析了sort函数的功能、原理及实现数组排序的相关技巧,代码中备有详尽的注释便于理解,需要的朋友可以参考下
  • C语言sort函数

    千次阅读 多人点赞 2019-08-21 09:23:21
    C语言的sort函数是一类用于数组排序的函数以下是其简单的使用: 1.头文件: #include<algorithm> 2.使用命名空间: using namespace std; 3.函数形式: sort(数组名,数组名+元素个数,排序函数); ...
  • c++ sort函数

    千次阅读 2019-03-30 20:50:06
    sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm> 它使用的排序方法是类似于快排的方法,时间复杂度为nlog2(n)nlog_2{(n)}nlog2​(n) Sort函数有三个参数:(第三个参数可不写) 第...
  • sort函数详解

    千次阅读 2018-07-21 18:01:58
    sort函数作为算法库内自带的排序算法,极大地减少了程序猿在编写排序所花的时间。要使用sort函数,只需引入头文件#include&lt;algorithm&gt; 函数写法为 sort(begin,end) 例如: #include&lt;...
  • 主要介绍了C#中Arraylist的sort函数用法,较为详细的分析了ArrayList的sort函数的功能、定义及具体使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • sort函数和sorted函数的异同

    千次阅读 2019-09-29 11:22:26
    sort函数和sorted函数都是python内置的排序函数。那为什么会有2个排序函数呢? 总结一下,虽然都是内置的排序功能,但是还是有差异的。 1 sort原位排序,无返回值;sorted保留原对象,返回一个排序完的对象。 2 ...
  • sort函数与结构体

    千次阅读 2018-08-23 11:11:52
    对于排序来说,c++的sort函数用着还是相当方便的,比什么冒泡排序,快速排序简单方便了很多。 sort函数的头文件是#include&lt;algorithm&gt; sort函数默认的排序方式是升序排序,即从小到大。   sort...
  • sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include的c++标准库中。 题目描述...
  • 主要介绍了php数组排序usort、uksort与sort函数用法,详细介绍了usort、uksort与sort函数在数组排序中的应用,具有不错的参考借鉴价值,需要的朋友可以参考下
  • python3 语法小记(一)sort函数 sorted函数

    万次阅读 多人点赞 2018-11-24 19:56:36
    1、sort函数是应用到list上的,属于列表的成员方法,sorted可以对所有的可迭代对象进行排序操作。 2、list的sort方法返回的是对已经存在的列表进行操作,无返回值;而内建函数sorted返回的是一个新的列表,不是在...
  • C语言sort函数如何使用

    万次阅读 多人点赞 2017-06-23 13:14:24
    c语言中没有预置的sort函数,如果在c语言中,要调用sort函数,就需要自定义一个用于排序的函数,或者使用c语言自有的qsort函数,其头文件为stdlib.h。 1、自定义排序功能 如下,为整数型从小到大排序
  • python sort函数

    2018-04-17 09:49:29
    python中的sort函数,sorted()函数,一般默认reverse = false,即表示升序,当reverse= true时,表示降序。
  • sort函数的具体用法

    2011-08-15 10:16:58
    sort函数的具体用法,还是很不错的,比较的详细,能够让你快速理解sort函数,并运用。
  • c++自定义sort函数

    千次阅读 2017-08-06 10:35:00
    Sort函数使用模板: Sort(start,end,排序方法) start:起始地址 end:终止地址(亦可传入迭代器起始终止) sort函数没有第三个参数,默认实现的是从小到大的排序 例题:为成绩排序,定义两科成绩a,b,将成绩按照成绩a从...
  • 主要给大家介绍了关于C++中sort函数的基础入门使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起看看吧
  • sort函数自定义排序

    千次阅读 2020-12-15 18:09:29
    sort函数自定义排序 咳咳,自定义排序说实话用的地方还是很多的,像ACM里面,天梯赛里面,特别是天梯,必出这玩意。。。咳咳,水点字数,咱继续。 首先哈,我们来看一下c++自带的排序; 可以看出哈,默认是按...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 463,208
精华内容 185,283
关键字:

sort函数