C ++ sort()与stable_sort()
2016-03-04 23:41
162 查看
这两个函数的原理都是快速排序,时间复杂度在所有排序中最低,为O(nlog2n) ;
sort的应用;
1、可以传入两个参数;
sort(a,a+N) ,其中a是数组,a+N表示对a[0]至a[N-1]的N个数进行排序(默认从小到大排序);
2、传入三个参数;
sort(a,a+N,cmp),第三个参数是一个函数 ;
如果让函数从大到小排序,可以用如下算法实现;
bool cmp(int a,int b){return a>b};
sort(A,A+N,cmp);
而stable_sort的用法与sort一致,区别是stable_sort函数遇到两个数相等时,不对其交换顺序;这个应用在数组里面不受影响,当函数参数传入的是结构体时,会发现两者之间的明显区别;
sort的应用;
1、可以传入两个参数;
sort(a,a+N) ,其中a是数组,a+N表示对a[0]至a[N-1]的N个数进行排序(默认从小到大排序);
2、传入三个参数;
sort(a,a+N,cmp),第三个参数是一个函数 ;
如果让函数从大到小排序,可以用如下算法实现;
bool cmp(int a,int b){return a>b};
sort(A,A+N,cmp);
而stable_sort的用法与sort一致,区别是stable_sort函数遇到两个数相等时,不对其交换顺序;这个应用在数组里面不受影响,当函数参数传入的是结构体时,会发现两者之间的明显区别;
相关文章推荐
- AngularJS 中 Provider 的用法及区别
- supermap二维地图缓存的配置文件sci解析
- 十六进制转八进制
- 43-题目1026:又一版 A+B
- 29. Divide Two Integers
- Android 使用Fragment界面向下跳转并一级级返回
- 如何通过JNI传递对象执行回调
- 多态
- 分析两种显著网站的数据传输方式
- openwrt中计划任务的设置
- 第12 课:HA下的Spark集群工作原理解密
- Android Studio 中Locat使用包名过滤无法显示的问题
- No_16_0303 Java基础学习第十一天
- Hanoi塔
- AngularJS 中的作用域
- IP地址判断有效性
- 树链剖分(详解)
- bash特性
- 作业题
- java学习之二——关于java你必须知道的一些常识