Growth of divide-and-conquer recursion: master theorem (CSCI 2824, Spring 2015)In this lecture we introduce the divide-and-conquer recursions, and the master theorem for estimating the growth of divide-and-conquer recursions. (Section 4.8 of the textbook) A divide-and-conquer recursion is a recursive sequence of the form , some positive constant, where , and . Loosely speaking, a divide-and-conquer recursion captures the number of operations involved by a divide-and-conquer algorithm applied on a specific problem. As a recursive algorithm, divide-and-conquer proceeds by repeatedly breaking the current problem down into smaller subproblems of the same nature, until it is small enough that the solution is “trivial”. Simple examples of divide-and-conquer include binary search and merge sort. Each specialized divide-and-conquer algorithm would have the following few features:
With the roles of in mind, it is not difficult to understand the intuition behind the divide-and-conquer recusion. For more information on divide-and-conquer algorithms, see e.g. the Wikibook chapter. What we are interested in is the growth of divide-and-conquer recursions: the growth of such a recursion tells us the efficiency of the corresponding divide and conquer algorithm. It turns out that the growth of depends on whether the function grows faster, at the same rate or slower than the polynomial function , where . Master theorem
Consider the recursive function defined by , some positive constant, with , and . Define . Then the following is true.
Example 1We estimate the growth rate of the recursive function .
Example 2We estimate the growth rate of the recursive function .
Example 3We estimate the growth rate of the recursive function .
Example 4We estimate the growth rate of the recursive function .
|