Introduction to algorithms (3rd editon)
第四章部分解答 by zevolo
4.3-1
Show that the solution of T(n) = T(n-1) + n is O(n^2).proof:
assume T(m) <= c * m^2 ( m < n)
T(n) = T(n-1) + n <= c (n-1)^2 + n = c (n^2 - 2n + 1) + n
= cn^2 - 2cn + c + n
= cn^2 + (1 - 2c)n + c
<= cn^2 (when c > 1 && c < 2 && n > 1)
so modify the assumption to T(m) <= c m^2 (1 < m < 2)
for n = 1
T(n) = T(1) = 1
c n^2 = c (1)^2 = c
satisfy the T(1) <= c (1)^2
so the assumption is correct
4.3-2
show that the solution of T(n) = T(ceiling(n/2)) + 1 is O(lgn)
proof:
assume that T(m) <= c * lg(m) (m < n), k = ceiling(n/2)
T(n) <= c * k + 1
<= c * lg((n+1)/2) + 1
= c * lg(n+1) - c + 1
= c * lg(n) + c * lg((n+1)/n) - c + 1
<= c * lg(n) + c * lg((2+1)/2) - c + 1 (when n > 1)
= c * lg(n) + c * lg(3) - 2c + 1 (when n > 1)
<= c * lg(n) (when n > 1 && c >&