注意:1、快排由于含有递归湛的使用,所以其空间复杂度较大。
2、逆序数的概念:越有序,时间复杂度越高。数据结构中,有一个逆序数的概念。如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个 逆序 。 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。 每次排序后,如果逆序数越高,那么快排复杂度越小。3、冒泡和插入和初始化序列的有序度关系很大,基本逆序的时候,时间复杂度为 O(n^2),基本有序的时候,为 O(n)
shell和初始化序列关系不大,但与你选的 increment sequence 关系大
堆排序很稳定,无论给什么序列,它的时间几乎一样
初级的快排与序列的随机化程度有关,基本顺序或者基本逆序会造成时间复杂度退化为O(n^2),随机为O(nlogn);
改进的快排与初始序列无关。
转自:http://blog.csdn.net/hguisu/article/details/7776068