正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-S 2026 第一轮真题 › 第 9 题

CSP-S 2026 第一轮 第 9 题:某分治算法满足 T(n)=T(n/3)+T(2n/3)+Θ(n)

单项选择 · 算法复杂度与正确性 · 答案 A

题目

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

选项

  • A. $Θ(n log n)$
  • B. $Θ(n^{2})$
  • C. $Θ(n^{1.5})$
  • D. $Θ(n)$

答案

A

题解

选 A. \(\Theta(n\log n)\)。用递归树分析最直观。

每个规模为 \(m\) 的问题会分成两个子问题,规模之和为 \[ \frac m3+\frac{2m}3=m. \] 所以,在尚未出现叶子节点的层中,所有子问题的规模之和都是 \(n\),这一层的总处理代价就是 \(\Theta(n)\)。

注意两个分支大小不同,递归树的叶子深度也不同:

  • 最短路径:每次规模变为原来的 \(1/3\),深度约为 \(\log_3 n\)。因此前 \(\Theta(\log n)\) 层,每层都有 \(\Theta(n)\) 的代价,得到下界 \(\Omega(n\log n)\)。
  • 最长路径:每次规模变为原来的 \(2/3\),深度约为 \(\log_{3/2} n\)。整棵树只有 \(O(\log n)\) 层,每层代价至多 \(O(n)\),得到上界 \(O(n\log n)\)。

上下界一致,因此 \[ \boxed{T(n)=\Theta(n\log n)}. \]

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号