在我的作业问题中,我被要求解决以下递归关系,T(n) = T(√n) + T(n - √n) + cn
这就是我解决相同问题并得到正确答案的方法。但是我的解决中有一个明显的错误。请指出如何纠正我的错误步骤。
对于所有 n > 4,我们有 , √n < (n-√n)
因此,项 T(n - √n) 将缓慢地向 T(1) 移动,从而有助于递归树的高度。
通过简单的数学,我们可以说在 √n 次迭代之后,项 T(n - √n) 最终将是 T(1)。(这是我出错的地方。我原以为这些术语会减少如下, T(n - √n) , T(n - 2√n) , T(n - 3√n) 但他们没有)
因此上述树的高度为√n。
此外,每个级别的运营成本最多为 cn。
因此,操作的总成本为 √n * cn。
因此算法的运行时间为 O(n√n)