Big O Substitution Proof

Document last modified: 

Use the substitution method to show that T(n) ∈ O(n2 lg n)

where T(n) = 1                      when n = 1
16T(n/4) + n2   when n > 1

1) By definition of Big-O:

T(n) ≤ c * n2 lg n

where O(g(n)) = {h(n): ∃ positive constants c, n0 such that 0 ≤ h(n) ≤ cg(n), ∀ n ≥ n0}

2) IH:     T(n/4) ≤ c * (n/4)2 lg n/4               

3) Show: T(n) ≤ c * n2 lg n                           n case defined by n/4 case

  1. T(n) = 16T(n/4) + n2                              Recurrence
  2.        ≤ 16 * c * (n/4)2 lg n/4 + n2        Substitute IH
  3.        = cn2 lg n/4 + n2                    
  4.        = cn2 lg n  - cn2lg 4 + n2        
  5.        = cn2 lg n - 2cn2 + n2             
  6.        ≤  cn2 lg n                                        when c ≥ 1/2          
Figuring out constant c so the last two lines are correct. 

Write those two lines (lines 5 and 6) down as follows, then do algebra to solve for the constant c:

cn2lg n - 2cn2 + n2   ≤  cn2 lg n
-2cn2 + n2 ≤  0
-2cn2 ≤ -n2
-2c ≤ -1
c ≥  1/2

By definition of Big-O, c is required > 0

4) Base case to find n0 

Verify: TR(n) ≤ TC(n)

TR(n) = T(n)                             recurrence

TC(n) = cn2 lg n                       closed-end bounds solution for O

where TR(n) = 1                        when n = 1
16TR(n/4) + n2   when n > 1
Try n0 = 1 Try n0 = 4
TR(n) ≤ TC(n)
TR(1) ≤ TC(1)
1 ≤ c(1)2lg 1
1 ≤ c * 0
1 ≤ 0
 fails for n0 = 1 
TR(n) ≤ TC(n)
TR(4) ≤ TC(4)
16*T(4/4) + 42 ≤ c(4)2lg 4
16*T(1) + 16 ≤ 32c
32 ≤ 32c
1 ≤ c
succeeds when c ≥ 1 and n0 = 4

 

5)  Base case c ≥ 1

Induction c ≥ 1/2

Since T(n) ≤ c * n2 lg n, ∀n ≥ n0 choose c ≥ 1 and n0 = 4,

     T(n) ∈ O(n2 lg n)