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 >= (1/lg(4/3)) )
note: c * lg(3) - 2c + 1 <=0 ==> c >= (1/lg(4/3))
the bound

本文提供了《算法导论》第三版中第四章的部分习题解答,重点涉及算法和树结构的相关问题。
最低0.47元/天 解锁文章
4553

被折叠的 条评论
为什么被折叠?



