zoukankan      html  css  js  c++  java
  • sort函数的用法与实验

    用了这么久的sort排序,但是一直没有对他进行总结。

          像我这样的蒟蒻有了sort排序就再也没有看过快排、冒泡排序、桶排序了......

    sort的头文件<algorithm>

        存在于C++标准库内的函数,我们其实并不需要知道他的原理,只要会用就行了;;;

      sort函数有三个参数

      sort(a,b,c)

    1. a表示要排序的数组的起始位置
    2. b表示要排序的数组的结束地址(最后一位要排序的地址)
    3. c是排序的方法,如果不写则默认从小到大排序

    Sort函数使用模板: Sort(start,end,排序方法)

      使用sort函数主要的方法就是在参数c上做文章

      如想实现从大到小排序

          可以自己写一个比较函数

    bool complare(int a,int b)
    {
     return a>b;
    }
    

      

    具体操作就是:

    先搞好参数c,即做一个比较函数 cmp   ↑  

    然后sort(a,b,cmp)即可

    这样做还是有点麻烦,因为还需要自己编写告诉程序进行何种排序的函数,c++标准库强大的功能完全可以解决这种麻烦。

    Sortt函数的第三个参数可以用这样的语句告诉程序你所采用的排序原则:

    less<数据类型>()//从小到大排序

    greater<数据类型>()//从大到小排序

    sort(a,b,c<int>());

    #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,less<int>());//从小到大排序
     for(int i=0;i<10;i++)
     cout<<a[i]<<endl;
     return 0;
    }
    

      

    #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,greater<int>());//从大到小排序
     for(int i=0;i<10;i++)
     cout<<a[i]<<endl;
     return 0;
    }
    

      

    另外,sort函数也可以实现对字符的排序

    sort(a,b,c<char>());

    如对"asdfghjklk"进行排序

    从大到小排序

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
     char a[11]="asdfghjklk";
     for(int i=0;i<10;i++)
     cout<<a[i]<<endl;
     sort(a,a+10,greater<char>());
     for(int i=0;i<10;i++)
     cout<<a[i]<<endl;
     return 0;
    }
    

      

    从小到大排序

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
     char a[11]="asdfghjklk";
     for(int i=0;i<10;i++)
     cout<<a[i]<<endl;
     sort(a,a+10,less<char>());
     for(int i=0;i<10;i++)
     cout<<a[i]<<endl;
     return 0;
    }
     
    

      

     

  • 相关阅读:
    我们都可以把它放 Sidecar 容器中,这样微服务具备了 Super power,一种超能力
    DP 状态 DP 转移方程 动态规划解题思路
    完全二叉树 原因 完全二叉树最后一层节点靠左的原因
    延时任务最佳实践方案总结
    b+ 树 只存储 索引
    埋点质量保障体系建设
    linux命令重定向>、>>、 1>、 2>、 1>>、 2>>、 <
    卡特兰数
    python 使用函数名的字符串调用函数(4种方法)_black-heart的专栏-CSDN博客 https://blog.csdn.net/mrqingyu/article/details/84403924
    12 | 服务注册与发现如何满足服务治理
  • 原文地址:https://www.cnblogs.com/pirote-zjy/p/7717914.html
Copyright © 2011-2022 走看看