标签: algorithm recursion time-complexity big-o recurrence
我写了一个在Get-AppxPackage | ? {$_.IsDevelopmentMode -eq "True"} | Remove-AppxPackage中运行的递归算法。
Get-AppxPackage | ? {$_.IsDevelopmentMode -eq "True"} | Remove-AppxPackage
Θ(n)的一个递推方程是n > 0,其中T(n) = T(v) + T(n - 1 - v) + c是常量,c是一个变量,其值可以是固定范围{{1} }。
Θ(n)
n > 0
T(n) = T(v) + T(n - 1 - v) + c
c
我如何进一步解决或正确地简化这个等式?
答案 0 :(得分:1)
重复扩展非常数术语:
该系列在以下时间终止:
这意味着,因为术语T(v)将取消N中的分母。
T(v)
N
答案 1 :(得分:0)
在评论中,您描述了算法的行为,如下所示:它对空树执行一定量的工作,否则执行一定量的工作,然后递归处理左右子树。您可以以不同的方式考虑运行时,而不是使用您描述的重复关系描述运行时:完成的工作与树中的节点数成正比,因为您可以对每个完成的工作单元收费到特定节点。因此,总运行时间为O(n)。