排序总结
(1)快速排序:O(nlogn)~O(n^2):
小的放在该元素前面,大的放在该元素后面。
快速排序的比较时间最短,可以理解为其要比较该元素的前后,所以效率最高。
平均时间和最好时间:O(nlogn)
最坏时间退化成冒泡: O(n^2)
(2)选择排序:不受初始数据序列的影响,时间复杂度不变
直接选择排序:O(n^2)
堆排序:0(nlogn)
(3) 插入排序
直接插入排序:O(n)~O(n^2)
待排序序列基本有序的情况下:只需要比较N次,时间复杂度为:O(n)
冒泡排序:O(n)~O(n^2)
待排序序列基本有序的情况下:只需要比较N次,时间复杂度为:O(n)
总结:
一般平均的最快排序:快速排序
初始序列有序的最快:直接插入排序
最可能出现空间不足:归并排序
与初始序列无关的排序:二分插入排序,直接选择排序,堆排序
厚积薄发,行胜于言@飞鸟各投林