I'm taking Data Structures and Algorithm course and I'm stuck at this recursive equation:
T(n) = logn*T(logn) + n
obviously this can't be handled with the use of the Master Theorem, so I was wondering if anybody has any ideas for solving this recursive equation. I'm pretty sure that it should be solved with a change in the parameters, like considering n to be 2^m , but I couldn't manage to find any good fix.
The answer is Theta(n)
. To prove something is Theta(n)
, you have to show it is Omega(n)
and O(n)
. Omega(n)
in this case is obvious because T(n)>=n
. To show that T(n)=O(n)
, first
N
such that log(n)^2 < n/100
for all n>N
. This is possible because log(n)^2=o(n)
.C>100
such that T(n)<Cn
for all n<=N
. This is possible due to the fact that N
is finite. We will show inductively that T(n)<Cn
for all n>N
. Since log(n)<n
, by the induction hypothesis, we have:
T(n) < n + log(n) C log(n)
= n + C log(n)^2
< n + (C/100) n
= C * (1/100 + 1/C) * n
< C/50 * n
< C*n
In fact, for this function it is even possible to show that T(n) = n + o(n)
using a similar argument.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With