大排序有两种:内部排序和外部排序。在排序过程中,如果所有记录都存储在内存中,称为内部排序,如果排序过程中需要外部存储,称为外部排序。
一、内排序有可以分为以下几类
(1),插入排序:直接插入排序、二分法插入排序和Hill排序。(2)选择排序:简单选择排序和堆排序。(3)交换排序:冒泡排序和快速排序。(4)、合并排序(5)、基数排序二、时间复杂度分析
二进制插入排序类似于直接插入排序。忽略系数,最坏的情况是O (n 2)。
三、排序算法的选择
1.数据规模小。(1)在需要排序的列基本顺序的情况下,可以选择直接插入排序;
(2)如果对稳定性没有要求,建议简单选择排序;如果对稳定性有要求,建议插入或起泡。
2.数据规模不是很大。
(1)内存空间完全可以使用,顺序无序,对稳定性没有要求,排序快,所以此时需要log(N)的额外空间。
(2)序列本身可能是有序的,需要稳定性。如果空间允许,应该使用合并排序。
3.数据规模非常大
(1)如果想要稳定,可以考虑合并排序。
(2)对稳定性没有要求,堆排序比较合适。
4.初始序列基本有序(正序列)
建议使用直接插入和鼓泡。