题目
对 $n$ 个元素的数组进行归并排序,最差情况的时间复杂度为 $O(n \log n)$。
答案:A
考点
分治算法递推
解题思维
分析时间复杂度时关注循环层数和每层迭代次数,递归算法则分析递归树。注意最坏/最好/平均情况的区别。
常见错误
分析复杂度时注意外层循环和内层循环的关联。例如内外两层都到n的循环不一定是O(n²),要看内层是否每次都在缩小。
详细解析(节选)
【考点】分治算法|递推分析|渐近时间复杂度
1. 🎯 考纲定位
本题定位在 GESP 八级 排序算法模块,命题人想卡住“只背结论、不辨场景”的考生——合并排序的平均/最好/最坏都是 O(n log n),但考生容易把“平均”当成“最坏”。
同考点真题
- 第 28 题· NOIP 2007 普及组初赛试题 · 答案 return(dr<tr+s)&&(dc<tc+s)dr<tr+s&&dc<tc+schessboard(tr,tc,tr+s-1,tc+s-1,s)chessboard(tr,tc+s,tr+s-1,tc+s,s)chessboard(tr+s,tc,tr+s,tc+s-1,s)chessboard(tr+s,tc+s,tr+s,tc+s,s)看解析 →
- 第 27 题· NOIP 2008 提高组初赛试题 · 答案 a[left];a[j]<valuea[j]<=valuea[i]>valuea[i]>=valuea[i] = value; i + 1,right,n FindKth(left, i – 1, n);看解析 →
- 第 26 题· NOIP 2009 普及组初赛试题 · 答案 NPOI看解析 →
- 第 28 题· NOIP 2011 提高组初赛试题 · 答案 num++num = num + 1j = isolve(left, j - 1, deep + 1)solve(j + 1, right, deep + 1)看解析 →
- 第 15 题· NOIP 2012 普及组初赛试题 · 答案 C看解析 →