排序算法使用场景对比

排序分类

空间、时间复杂度、稳定性

快排是最好的,其次是归并和希尔,堆排序在数据量很大时效果明显

快排:
一般情况时排序速度最块,但是不稳定,当有序时,反而不好;

归并排序:
稳定,适合大规模的排序,Array.sort()使用的就是归并排序;

堆排序:
适合数据量很大的情况,例如:大数据处理的一个例子:找出一千万个数中最小的前一百个数;
思路:建立一百个节点的大顶堆,首先将前一百个数放入堆中,之后每放入一个数就删除一个堆顶元素,最后剩下的就是最小的一百个数。当然也可以分区处理,感兴趣的小伙伴可以网上搜一下大神们的帖子。

希尔排序:
对增量的标准没有较为满意的答案,增量对性能会有影响;

归并排序:
效率非常不错,在数据规模较大的情况下,比希尔排序和堆排序要好;

稳定排序

插入排序,冒泡排序,二叉树排序,归并排序

不稳定排序

**快速排序(快),**希尔排序(些),**选择排序(选),**堆排序(一堆)。

内排序:所有排序操作都在内存中完成;

外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,742评论 0 15
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,215评论 0 52
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 2,292评论 0 35
  • Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里...
    Only凹凸曼阅读 590评论 2 4
  • 相关代码:https://pan.baidu.com/s/1nvNdedzhttps://pan.baidu.co...
    rogertan30阅读 502评论 2 12