T(n)= 4 T(n / 3)+ lg n

时间:2015-05-03 23:49:56

标签: time-complexity

我如何解决这种重复关系? T(n)= 4T(n / 3)+ lg n

我知道Master-Theorem-Case 1适用,但我不明白为什么。直到现在我接近这个的方式就是这个。 a = 4,b = 3,f(n)= lg n。

是lg n =(lg10 n)还是(lg2 n)我知道因为(lge n)它并不重要但我仍然不明白为什么它不重要,如果它是lg10或lg2。我可以计算(lg10 n)/(lg2 n)或者......并且由于某种原因它无关紧要但是为什么?...但让我们继续。

n ^ log3 ^ 4~1.26但是n ^ n的含义是什么。

另一个例子也许你了解我。 如果我有f(n)= n的平方根而不是lg n则它将是f(n)= n ^ 0.5。 因此,对于e> 1,n ^ 1.26 <= n ^ 0.5。对于e = 1,第一种情况,f(n)变为n ^ logb ^(a-e)= n ^ log3 ^(4-1)= n ^ log3 ^ 3的元素。 n ^ 0.5的n ^ 0.5元素?是?因为它更小?所以这导致n ^ logb ^ a,或T(N)= O(N ^ logba)或O(n ^ log3 ^ 4)。

如果这是正确的,我如何按照这种方式进行f(n)= lg n?

我希望你理解我的问题,我无法正确格式化所有n ^ logba的东西。

1 个答案:

答案 0 :(得分:1)

没有。对数函数的增长率小于指数大于0的任何多项式函数。也就是说,即使像x ^ 0.0000001这样的东西最终也会比log x增长得快。

所以在这种情况下它的O(n ^ log_3 4)。