CSP-S 提高级 · CSP 2026 提高级第一轮 第 9 题

选择题 · 答案 A · 考点:分治算法、复杂度分析、时间复杂度分析

← 整套速查表 CSP-S 提高级 全部真题

题目

【单选】某分治算法满足 T(n) = T(n/3) + T(2n/3) + Θ(n),T(1) = O(1),则 T(n) 是( )。

答案:A

考点

分治算法复杂度分析时间复杂度分析

解题思维

这是主定理的"非整数分割"情形:T(n) = T(n/3) + T(2n/3) + Θ(n),两棵子树规模之和恰为 n,属于平衡划分,结果与归并排序同阶——Θ(n log n)。

常见错误

看到 2n/3 就以为"分得不均所以更慢",误选 Θ(n²) 或 θ(n^1.5);也可能套标准主定理(要求子问题等规模)而卡住。

详细解析(节选)

解析

本题考查分治算法的时间复杂度分析(递归树法)。

为什么不能直接套标准主定理

标准主定理形如 T(n) = aT(n/b) + f(n),要求所有子问题规模相同。本题两个子问题规模分别是 n/3 和 2n/3,是不均匀划分,需要改用递归树法。

递归树逐层分析

第 0 层:1 个规模 n 的结点,本层代价 Θ(n)。

第 1 层:分成 n/3 和 2n/3 两个子问题,本层代价 = Θ(n/3) + Θ(2n/3) = Θ(n)。

第 2 层:n/3 分成 n/9、2n/9;2n/3 分成 2n/9、4n/9。本层代价 = n/9 + 2n/9 + 2n/9 + 4n/9 = Θ(n)。

一般地,每一层的结点规模之和恒为 n → 每层代价都是 Θ(n)。

关键在树的高度

递归树最深的路径是不断走 2n/3 的那一支:

n → 2n/3 → (2n/3)² → … → 1

需要满足 (2/3)^h · n = 1,即 h = log_{3/2} n = log n / log(3/2) ≈ 1.7095 · log₂n → 树高 Θ(log n)。

合并结论

T(n) = Θ(n) × Θ(log n) = Θ(n log n)

答案 A。

其他选项为什么错

记忆点

同考点真题

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