常见的几种排序算法总结
2017-07-10 15:12
246 查看
常见的几种排序算法总结
上篇博客主要介绍了几种排序的算法思想及代码实现,本篇主要对上篇进行总结。几种算法的时间复杂度及稳定性如下:
(1)直接插入排序
适用场景:一般不用在数据大于1000的场合下使用插入排序,或者重复排序超过200数据项的序列。当数据已经基本有序时,采用插入排序可以明显减少数据交换和数据移动次数,进而提升排序效率。
(2)希尔排序
适用场景:增量初始值不容易选择,所以该算法不常用。
(3)选择排序:
适用场景:交换少的序列中
(4)堆排序:
适用场景:堆排序适合于数据量非常大的场合(百万数据)。
堆排序不需要大量的递归或者多维的暂存数组。这对于数据量非常巨大的序列是合适的。比如超过数百万条记录,因为快速排序,归并排序都使用递归来设计算法,在数据量非常大的时候,可能会发生堆栈溢出错误。
(5)冒泡排序
适用场景:与直接排序类似,但效率比它还低。
(6)快速排序
适用场景:快速排序比大部分排序算法都要快,应用很广泛,差不多各种语言均提供了快排。
(7)归并排序
适用场景:外部排序
补充:
(8)基数排序
它是一种比较新颖的算法,但是它只能用于整数的排序,如果我们要把同样的办法运用到浮点数上,我们必须了解浮点数的存储格式,并通过特殊的方式将浮点数映射到整数上,然后再映射回去,这是非常麻烦的事情,因此,它的使用同样也不多。而且,最重要的是,这样算法也需要较多的存储空间。
思想:把每个数据看成d个属性组成,依次按照d个属性对数据排序(每轮排序可采用计数排序),复杂度为O(d*N)
适用场景:数据明显有几个关键字或者几个属性组成。
相关文章推荐
- 黑马程序员 知识点总结-Java中几种常见的排序算法
- 几种常见的排序算法总结
- 几种常见排序算法总结(java版)
- Java基础-几种常见排序算法总结
- 几种常见排序算法总结(java版)
- c++常见的几种排序算法总结
- 几种常见的排序算法Java实现总结
- 几种排序算法的总结
- 用Java实现几种常见的排序算法
- 用Java实现几种常见的排序算法
- 常见排序算法总结
- 几种常见的排序算法的分析研究
- Java实现几种常见的排序算法
- 用Java实现几种常见的排序算法
- 排序算法:几种常见的排序算法的C语言代码
- 对字符串的几种常见操作总结
- 用Java实现几种常见的排序算法
- 总结了一些常见的排序算法,面试必备啊!
- 用Java实现几种常见的排序算法
- 用Java实现几种常见的排序算法及SortUtil