Recurrences and Recursive Algorithms

Recurrences and Recursive Algorithms

Solving recurrence relations Quicksort Radboud University Nijmegen Recurrences and recursive algorithms Alexandra Silva [email protected] http://www.cs.ru.nl/~alexandra Institute for Computing and Information Sciences Radboud University Nijmegen 20 February 2013 Alexandra 20 February 2013 Lesson 3 1 / 24 We had ( Θ(1) if n = 1 T (n) = Θ(1) + 2T (n=2) + Θ(n) if n > 1 Let us rewrite this as ( c if n = 1 T (n) = 2T (n=2) + cn if n > 1 where c is the largest constant representing both the time required to solve problems of dimension 1 as well as the time per array element of the divide and combine steps. Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations Going back: How did we get n lg n for merge sort? Alexandra 20 February 2013 Lesson 3 2 / 24 Let us rewrite this as ( c if n = 1 T (n) = 2T (n=2) + cn if n > 1 where c is the largest constant representing both the time required to solve problems of dimension 1 as well as the time per array element of the divide and combine steps. Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations Going back: How did we get n lg n for merge sort? We had ( Θ(1) if n = 1 T (n) = Θ(1) + 2T (n=2) + Θ(n) if n > 1 Alexandra 20 February 2013 Lesson 3 2 / 24 where c is the largest constant representing both the time required to solve problems of dimension 1 as well as the time per array element of the divide and combine steps. Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations Going back: How did we get n lg n for merge sort? We had ( Θ(1) if n = 1 T (n) = Θ(1) + 2T (n=2) + Θ(n) if n > 1 Let us rewrite this as ( c if n = 1 T (n) = 2T (n=2) + cn if n > 1 Alexandra 20 February 2013 Lesson 3 2 / 24 Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations Going back: How did we get n lg n for merge sort? We had ( Θ(1) if n = 1 T (n) = Θ(1) + 2T (n=2) + Θ(n) if n > 1 Let us rewrite this as ( c if n = 1 T (n) = 2T (n=2) + cn if n > 1 where c is the largest constant representing both the time required to solve problems of dimension 1 as well as the time per array element of the divide and combine steps. Alexandra 20 February 2013 Lesson 3 2 / 24 For each of the size-n=2 subproblems, we have a cost of cn=2, plus two sub-problems, each costing T (n=4): Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations c'd For the original problem we have a cost cn plus the cost of the sub-problems: Alexandra 20 February 2013 Lesson 3 3 / 24 Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations c'd For the original problem we have a cost cn plus the cost of the sub-problems: For each of the size-n=2 subproblems, we have a cost of cn=2, plus two sub-problems, each costing T (n=4): Alexandra 20 February 2013 Lesson 3 3 / 24 • There are lg n + 1 levels (height is lg n; proof by induction). • Total cost is sum of costs at each level: cn(lg n + 1) = cn lg n + cn. • Ignore low-order term: merge sort worst case is in Θ(n lg n). Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations c'd Continue expanding until the problem sizes get down to 1: • Each level has cost cn. Alexandra 20 February 2013 Lesson 3 4 / 24 • Total cost is sum of costs at each level: cn(lg n + 1) = cn lg n + cn. • Ignore low-order term: merge sort worst case is in Θ(n lg n). Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations c'd Continue expanding until the problem sizes get down to 1: • Each level has cost cn. • There are lg n + 1 levels (height is lg n; proof by induction). Alexandra 20 February 2013 Lesson 3 4 / 24 • Ignore low-order term: merge sort worst case is in Θ(n lg n). Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations c'd Continue expanding until the problem sizes get down to 1: • Each level has cost cn. • There are lg n + 1 levels (height is lg n; proof by induction). • Total cost is sum of costs at each level: cn(lg n + 1) = cn lg n + cn. Alexandra 20 February 2013 Lesson 3 4 / 24 Solving recurrence relations Quicksort Radboud University Nijmegen Recurrence relations c'd Continue expanding until the problem sizes get down to 1: • Each level has cost cn. • There are lg n + 1 levels (height is lg n; proof by induction). • Total cost is sum of costs at each level: cn(lg n + 1) = cn lg n + cn. • Ignore low-order term: merge sort worst case is in Θ(n lg n). Alexandra 20 February 2013 Lesson 3 4 / 24 The solution of a recurrence can be verified using the substitution method, which allows us to prove that indeed the recurrence above has solution T (n) 2 Θ(n lg n) Solving recurrence relations Quicksort Radboud University Nijmegen How to solve recurrences? First, a small detail: we assumed the length of the array was a power of 2. If that's not case, the right formula for the recurrence would be: ( Θ(1) if n = 1 T (n) = T (bn=2c) + T (dn=2e) + Θ(n) if n > 1 Alexandra 20 February 2013 Lesson 3 5 / 24 Solving recurrence relations Quicksort Radboud University Nijmegen How to solve recurrences? First, a small detail: we assumed the length of the array was a power of 2. If that's not case, the right formula for the recurrence would be: ( Θ(1) if n = 1 T (n) = T (bn=2c) + T (dn=2e) + Θ(n) if n > 1 The solution of a recurrence can be verified using the substitution method, which allows us to prove that indeed the recurrence above has solution T (n) 2 Θ(n lg n) Alexandra 20 February 2013 Lesson 3 5 / 24 Solving recurrence relations Quicksort Radboud University Nijmegen Substituiton method 1 Guess the solution. 2 Use induction to find the constants and show that the solution works. Example: Consider the following recurrence ( 1 if n = 1 T (n) = 2T (n=2) + n if n > 1 1 Guess: T (n) = n lg n + n (usually done by looking at the recursion tree). 2 Induction: Basis: n = 1 ) n lg n + n = 1 = T (n) Alexandra 20 February 2013 Lesson 3 6 / 24 = 2(n=2 lg n=2 + n=2) + n induction hyp. = n lg n=2 + n + n = n(lg n − lg 2) + n + n = n lg n − n + n + n = n lg n + n Solving recurrence relations Quicksort Radboud University Nijmegen Substituiton method Inductive step: Inductive hypothesis is that T (k) = k lg k + k for all k < n. We willl use this inductive hypothesis for T (n=2). T (n) = 2T (n=2) + n Alexandra 20 February 2013 Lesson 3 7 / 24 = n lg n=2 + n + n = n(lg n − lg 2) + n + n = n lg n − n + n + n = n lg n + n Solving recurrence relations Quicksort Radboud University Nijmegen Substituiton method Inductive step: Inductive hypothesis is that T (k) = k lg k + k for all k < n. We willl use this inductive hypothesis for T (n=2). T (n) = 2T (n=2) + n = 2(n=2 lg n=2 + n=2) + n induction hyp. Alexandra 20 February 2013 Lesson 3 7 / 24 = n(lg n − lg 2) + n + n = n lg n − n + n + n = n lg n + n Solving recurrence relations Quicksort Radboud University Nijmegen Substituiton method Inductive step: Inductive hypothesis is that T (k) = k lg k + k for all k < n. We willl use this inductive hypothesis for T (n=2). T (n) = 2T (n=2) + n = 2(n=2 lg n=2 + n=2) + n induction hyp. = n lg n=2 + n + n Alexandra 20 February 2013 Lesson 3 7 / 24 = n lg n − n + n + n = n lg n + n Solving recurrence relations Quicksort Radboud University Nijmegen Substituiton method Inductive step: Inductive hypothesis is that T (k) = k lg k + k for all k < n. We willl use this inductive hypothesis for T (n=2). T (n) = 2T (n=2) + n = 2(n=2 lg n=2 + n=2) + n induction hyp. = n lg n=2 + n + n = n(lg n − lg 2) + n + n Alexandra 20 February 2013 Lesson 3 7 / 24 = n lg n + n Solving recurrence relations Quicksort Radboud University Nijmegen Substituiton method Inductive step: Inductive hypothesis is that T (k) = k lg k + k for all k < n. We willl use this inductive hypothesis for T (n=2). T (n) = 2T (n=2) + n = 2(n=2 lg n=2 + n=2) + n induction hyp. = n lg n=2 + n + n = n(lg n − lg 2) + n + n = n lg n − n + n + n Alexandra 20 February 2013 Lesson 3 7 / 24 Solving recurrence relations Quicksort Radboud University Nijmegen Substituiton method Inductive step: Inductive hypothesis is that T (k) = k lg k + k for all k < n. We willl use this inductive hypothesis for T (n=2). T (n) = 2T (n=2) + n = 2(n=2 lg n=2 + n=2) + n induction hyp.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    54 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us