NOIP 普及组初赛 · NOIP 2013 普及组初赛试题 第 14 题

选择题 · 答案 A

← 整套速查表 NOIP 普及组初赛 全部真题

题目

( )的平均时间复杂度为 $O(n \log n)$,其中 $n$ 是待排序的元素个数。

答案:A

解题思维

看到O(n log n)先别急着选,脑子里过一遍常见排序:快排、归并、堆排都是这个量级,而插入、冒泡是平方级,基数排序看k。这题考的是对‘平均’和‘最坏’的区分,命题人最爱把快排的平均好、最坏差放在一起挖坑,让你误以为它不如归并稳定,或者反过来。

常见错误

最容易错的是把基数排序当成O(n log n),其实它是O(nk)(k是关键字位数),除非题目明确说k是常数,否则不能直接等同。其次,有些同学会纠结快排的最坏O(n²)而不敢选,但题干只问平均,所以A完全正确。还有人会混淆归并和堆排,以为它们也是平均O(n log n)但最坏不同,其实归并和堆排都是无论什么输入都稳在O(n log n),快排才是平均好最坏差的典型。

详细解析(节选)

这道题考什么

考的是对常见排序算法时间复杂度的记忆,尤其是‘平均’与‘最坏’的区别。命题人特别喜欢用快排做陷阱:它的平均是O(n log n),但最坏会退化到O(n²)。题目只问平均,所以答案很明确。

知识点回顾(人话版)

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断