-2

Give a closed form for this: T(1) = 1 T(N) = T(n/2) + log(n)

Anyone can show me how to solve this?

soulless
  • 285

1 Answers1

0

If $n = 2^m$, this becomes $T(2^n) =T(2^{n-1})+\log(2^n) =T(2^{n-1})+n\log(2) $.

Letting $T(2^n) = s(n)$, we get $s(n) = s(n-1)+n\log 2 $.

You should be able to solve this.

Another way is to repeatedly apply the recurrence:

$\begin{array}\\ T(n) &= T(n/2)+\log(n)\\ &= T(n/4)+\log(n/2)+\log(n)\\ &= T(n/8)+\log(n/4)+\log(n/2)+\log(n)\\ &= T(n/2^k)+\log(n/2^{k-1})+...+\log(n/2)+\log(n)\\ \end{array} $

Apply until $2^k \ge n > 2^{k-1} $, or $k = \lceil \log_2(n) \rceil -1$.

The sum of logs is, where $m = \lceil \log_2(n) \rceil -1 $,

$\begin{array}\\ \sum_{k=0}^{m} \log(n/2^k) &=\sum_{k=0}^{m}( \log(n)-\log(2^k))\\ &=\sum_{k=0}^{m}( \log(n)-k\log(2))\\ &=\sum_{k=0}^{m}\log(n)-\sum_{k=0}^{m}k\log(2)\\ &=(m+1)\log(n)-m(m+1)\log(2)/2\\ &=(m+1)(\log(n)-(m+1)\log(2)/2)\\ &=(m+1)(\log(n)-\lceil \log_2(n) \rceil\log(2)/2)\\ &\approx(m+1)(\log(n)-\lceil \log(n) \rceil/2)\\ &\approx(m+1)\log(n)/2)\\ &\approx\log^2(n)\log(2)/2\\ \end{array} $

marty cohen
  • 107,799