A Familiar Example: Binary Search
BinarySearch (query,A,low,high):
/* A[low..high] is assumed to be
sorted */
if (low > high) return NotFound;
else {
   mid = ë(low+high)/2û;
   if (query < A[mid]) return
     BinarySearch(A,low,mid-1);
   else if (query > A[mid]) return
     BinarySearch(A,mid+1,high);
   else return mid;
}
Recurrence is
T(n) = T(n/2) + 1 and T(1) = 1
Solution is
T(n) = O(log n)
CS409 - Spring 2000
5