排序算法使用场景对比

排序算法使用场景对比_第1张图片
排序分类

排序算法使用场景对比_第2张图片
空间、时间复杂度、稳定性

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

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

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

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

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

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

稳定排序

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

不稳定排序

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

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

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

你可能感兴趣的:(排序算法使用场景对比)