C++ sort函数

最近在写题,发现数据一大排序就超时,就在论坛上发现了sort(),这个函数是来排序的,比冒泡排序的算法要省时间,经常结合vector使用。

vector 用来定义可变数组,表示可以改变大小的数组的序列容器,这里有详细的介绍,我就不赘述了。

sort(参数一,参数二,参数三)有三个参数(第三个参数可写可不写),第一个参数用来放起始地址,第二个参数用来放最后一个参与排序的地址,第三个参数用来放排序方式(默认从小到大排序)。
使用此函数要在头文件处加上,#include < algorithm>和using namespace std;

 #include <iostream>
    #include <algorithm>
    using namespace std;

    int main(){
         int num[10] = {4,3,23,6,7,3,33,67,13,2}; 
         int i = 0; 

             for(i = 0;i < 10;++i) 
                 cout << num[i] <<" "; 
             cout << endl; 

             sort(num,num+10); 

             for(i = 0;i < 10;++i) 
                 cout << num[i] <<" ";
             cout << endl; 
             return 0;
    }


三个参数

类型一

 #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    int main(){ 
         int num[ ] = {4,3,23,6,7,3,33,67,13,2};
         int i = 0; int len = sizeof(num)/sizeof(int);//记得除以int的长度
         for(i = 0;i < len;++i)
             cout << num[i] <<" "; 
         cout << endl; 

         sort(num,num+10,greater<int>());//从大到小排序
         for(i = 0;i < 10;++i) 
             cout << num[i] <<" ";
         cout << endl; 
         sort(num,num+10,less<int>());//从小到大排序 
         for(i = 0;i < 10;++i) 
             cout << num[i] <<" "; 
         cout << endl; 
         return 0;
}


类型二

	#include <iostream>
    #include <algorithm>#include <vector>
    using namespace std;

    //下面的比较函数的返回值为0或者1bool 
    bool pai1(int m, int n){ 
         return m>n;	//降序排列
    }
    bool pai2(int m, int n){ 
         return m<n;	//升序排列
    }

    int main(){ 
        int num[ ] = {4,3,23,6,7,3,33,67,13,2}; 
        int i = 0; 
        int len = sizeof(num)/sizeof(int);//记得除以int的长度
        for(i = 0;i < len;++i) 
            cout << num[i] <<" "; 
        cout << endl;
        sort(num,num+10,pai1);//从大到小排序 ,不要尝试在cmp1的位置上写turn,会报错的。
        for(i = 0;i < 10;++i) 
             cout << num[i] <<" "; 
        cout << endl;
        sort(num,num+10,pai2);//从小到大排序 
            for(i = 0;i < 10;++i) 
                cout << num[i] <<" "; 
        cout << endl; 
        return 0;
    }


作者:include4229
来源:CSDN
原文:https://blog.csdn.net/include4229/article/details/84621630
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值