各种内部算法的比较及应用
基于四个因素进行对比:时间复杂度,空间复杂度,算法的稳定性,算法的过程特征。
一、从时间复杂度看
1、简单选择排序、直接插入排序和冒泡排序的平均情况下的时间复杂度都为O(n^2),并且实现过程比较简单,但直接插入排序和冒泡排序在最好的情况下时间复杂度可以达到O(n)。而且简单选择排序则与序列的初始状态无关。
2、希尔排序作为插入排序的拓展,对较大规模的排序都可以达到很高的效率,但目前未得出其精确的渐进时间。
3、堆排序是利用了一种称为堆的数据结构,可以在线性时间内完成建堆,而且在O(nlog2n)内完成排序过程。
4、快速排序时基于分治的思想,虽然在最坏的情况下快速排序时间会达到O(n^2),但快速排序的平均性能可以达到O(nlog2n),在实际应用中,常常优于其他排序算法。
5、归并排序同样是基于分治的思想,但由于其分割子序列与初始序列的排序无关,因此它的最好、最坏和平均时间复杂度均是O(nlog2n)。
二、从空间复杂度来看