标签: master-theorem
我在尝试理解原因时遇到了问题
T(n)= 16T(n / 4)+ n!
被认为
Θ(n!)
我正在从下面使用以下主定理:
https://www.geeksforgeeks.org/advanced-master-theorem-for-divide-and-conquer-recurrences/
这里令人困惑的部分是我的朋友说答案实际上是O(n!)而不是Θ(n!)...所以我真的很困惑。
答案 0 :(得分:0)
CLRS定理:
在您的情况下,a = 16, b = 4, f(n) = n!
a = 16, b = 4, f(n) = n!
让我们计算。那将是n^2
n^2
现在,n!肯定大于和n^2,所以我们将使用定理的第三种情况。
n!
让c = 0.5。这样就可以进行替换,16 * (n / 4)! <= 0.5 * n!
c = 0.5
16 * (n / 4)! <= 0.5 * n!
让我们在n中输入一个值并检查:
n
如果n = 100,则16 * (100 / 4)! <= 0.5 * 100!给出16 * 25! <= 0.5 * 100!。这个不等式是正确的,因为100!会比25!大得多。即使与16相乘也不会大于0.5 * 100!。
n = 100
16 * (100 / 4)! <= 0.5 * 100!
16 * 25! <= 0.5 * 100!
100!
25!
16
0.5 * 100!
对于其他更大的n值也是如此。因此,根据定理的复杂度应为