Objectives

We would like to :
  1. Examine binary search
  2. Learn how to solve a simple recurrence relation.

Notes

  • $$ T(n) = \begin{cases} c & \text{if } n=0,1 \\ T(n/2) + c & \text{if } n>1 \end{cases} $$
  • This is called a recurrence relation
  • Solving recurrence relations is a major component of our curriculum.
  • Solving the relation
    T(n) = T(n/2) + c
         Note: T(n/2) = T([n/2]/2) + c
                      = T(n/22) + c
    
    T(n) = T(n/22) + c + c
         = T(n/22) + 2c
         Note: T(n/22) = T(n/22/2) + c
                       = T(n/23) + c
    So 
    T(n) = T(n/23)+ c + 2c
         = T(n/23)+ 3c
         
    In General:
    T(n) = T(n/2k)+ kc
    
    Assume that n = 2k  
       We can always pad to make this true.
       
    T(2k) = T(2k/2k) + kc
          = T(1) + kc
              T(1) = c
              Since n = 2k
                   log2 n = log2k
                   so k = log2 n
    T(2k) = c + clog2n
    
    Thus is is O(log2n)