
要计算递归式 ( T(n) = 8T(n/2) + n^2 ) 的时间复杂度,可以使用 主定理(Master Theorem) 或 递归树法。以下是详细步骤和结论:
主定理适用于形如 ( T(n) = aT(n/b) + f(n) ) 的递推式,其中 ( a \geq 1 ), ( b > 1 )。 代入本题参数:
展开递推式至第 ( k ) 层: [ T(n) = 8^k T\left( \frac{n}{2^k} \right) + n^2 \sum_{i=0}^{k-1} 2^i ] 当 ( \frac{n}{2^k} = 1 )(即 ( k = \log_2 n ))时: [ T(n) = 8^{\log_2 n} T(1) + n^2 (2^{\log_2 n} - 1) = \Theta(n^3) + \Theta(n^3) = \Theta(n^3) ]
通过主定理、递归树法和递推展开法,一致得出: [ T(n) = 8T(n/2) + n^2 \quad \text{的时间复杂度为} \quad \boxed{\Theta(n^3)} ] 这表明算法的执行时间随输入规模 ( n ) 以三次方的速度增长。