1 / 10

Recursion

Recursion. Reading – Chapter 10. Recursion. The process of solving a problem by reducing it to smaller versions of itself Example: Sierpinski’s Triangle. Recursive algorithm. An algorithm is called recursive if it solves a problem by reducing the problem to smaller versions of itself

lindabjones
Download Presentation

Recursion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Recursion Reading – Chapter 10

  2. Recursion • The process of solving a problem by reducing it to smaller versions of itself • Example: Sierpinski’s Triangle

  3. Recursive algorithm • An algorithm is called recursive if it solves a problem by reducing the problem to smaller versions of itself • A recursive algorithm can be implemented using a recursive function

  4. Recursive function • A function that calls itself • What is the danger? • we need to avoid infinite recursion • A recursive function must have • recursive call(s) to the function with a smaller instance of the problem • one or more base cases to stop recursion

  5. Finding a recursive solution • A recursive solution to a problem must be written carefully • The idea is for each successive recursive call to take us one step closer to the base case (a situation in which the problem can easily be solved)

  6. General format formany recursive functions if (some easily-solved condition) // base case solution statement(s); else // general case recursive function call(s);

  7. Example • Write a recursive function Fact() to find the factorial of n. • What should Fact(4) return? • What can be a good base case that represents an easily-solved situation? • What can be a good general case that takes us closer to the base case?

  8. Example int Fact (int n) { if (n == 1) // base case return 1; else // general case return n * Fact(n-1); } // this is an example of tail recursion

  9. Example – Trace of calls Returns 4 * Fact(3) = 4 * 6 = 24 Call 1: Fact(4) n = 4 Returns 3 * Fact(2) = 3 * 2 = 6 Call 2: Fact(3) n = 3 Returns 2 * Fact(1) = 2 * 1 = 2 Call 3: Fact(2) n = 2 n = 1 Returns 1 Call 4: Fact(1) n = 1

  10. Iteration or Recursion? • Key factors • nature of the problem • efficiency • Every recursive call has its own set of parameters and local variables • time and space overhead associated with executing a recursive function • Certain problems are inherently recursive and a recursive solution is the most natural one

More Related