快排

原理介绍:

sort并不是简单的快速排序,它结合了插入排序和推排序进行了优化。系统会根据你的数据形式和数据量自动选择合适的排序方法。它在一次完整排序中不同的情况会选用不同方法。比如给一个数据量较大的数组排序,开始采用快速排序,分段递归,分段之后每一段的数据量达到一个较小值后它就不继续往下递归,而是选择插入排序,如果递归的太深,他会选择推排序。

使用说明:

传入排序的开始地址,结束地址。以及比较方法。

sort(first_pointer,first_pointer+n,cmp);

举例:

数组排序:

int A[100];
bool cmp(int a,int b) {
    return a < b;
}
sort(A,A+100,cmp);

vector排序:

sort(v.begin(),v.end());

结构体排序:

//按照商品的价格排序,价格相同时按照价值排序
struct goods {
    int price;
    int value;
};

bool cmp(goods a,goods b) {
   if (a.price == b.price) {
       return a.value> b.value;
   }
   return a.price > b.price;
}
struct goods num[length];
sort(goods , goods +length, cmp);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章 1.9 令人困惑的语法 1.9.1 stl_config.h中的各种组态(configurations) ...
    镜中无我阅读 1,067评论 0 0
  • title: STL学习date: 2018-11-23 19:49:39 0. 前言 STL是C++中的一个类库...
    dounine阅读 715评论 0 2
  • 1.new 、 delete 、 malloc 、 free 关系 delete 会调用对象的析构函数 , 和 n...
    可不期诺Cappuccino阅读 942评论 0 0
  • 写在前面: 犹豫了一下,不知道该不该发这么多。毕竟题目虽全,但是其实很多人看了不到一半,估计就会默默的收藏保存,等...
    Yt_cc阅读 14,732评论 1 6
  • [Toc] 类 构造函数 参考资料:https://blog.csdn.net/qq_39597358/artic...
    Catherin_gao阅读 252评论 0 0