单选题
14.在下列排序方法中,平均时间复杂度为O(nlogn)的排序算法是( )。
Ⅰ.快速排序 Ⅱ.冒泡排序 Ⅲ.希尔排序 Ⅳ.选择排序
【正确答案】
B
【答案解析】这种题目其实就是考查考生的记忆能力,因为在考研紧张的氛围下,很少有考生在做这种选择题的时候能够分析其算法来选择答案。下面与大家分享一个记忆总结,该总结可以将内部排序所有的记忆性题目轻轻松松地拿下。由以下总结可以很轻松地得到答案B。
稳定性、时间复杂度、空间复杂度总结:
(1)稳定性总结:一句话解决:本人考研无聊中,那么就快(快速排序)些(些和希尔谐音,希尔排序)选(选择排序)堆(堆排序)来聊!这里面都是不稳定的,其他的就自然都是稳定的了。
(2)时间复杂度总结:
1)在军训的时候,教官说了一句话:快(快速排序)些(希尔排序)以nlogn的速度归(归并排序)队(堆排序)!在这句话里面包含的排序,时间复杂度都是O(nlogn)1
2)冒泡冒得好就是O(n),冒泡冒得不好就是O(n2)。
3)直接插插得好就是O(n),插得不好就是O(n2),其中插得好、冒得好分别对应最好的时间复杂度,插得不好、冒得不好分别对应最坏时间复杂度,而平均时间复杂度对应最坏的时间复杂度。
(3)辅助空间总结:只需记住几个特殊的就好,归并O(n)、快速O(log2n)、基数排序O(r+d),其他的就自然全部是O(1)了。