22 - CMPSCI 187: Programming With Data Structures Lecture...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon
CMPSCI 187: Programming With Data Structures Lecture #22: Introduction to Recursion 2 November 2011
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Introduction to Recursion • What is Recursion, and Why Recursion? • Ungrounded Recursion • The Factorial Function • Tracing Recursive Code: Computing Sums • Iterative Alternatives • Indirect Recursion
Background image of page 2
What is Recursion, and Why Recursion? • A method is recursive if it calls itself. A method can call any other method, and its own execution is suspended until (or unless) the new method Fnishes. • When more than one version of the same method is on the stack, they have separate contexts -- separate copies of local variables and parameters. None of them affect any of the others, except by Fnishing their execution. • Recursive code is often the cleanest and simplest way to solve a problem. • Many mathematical and computing concepts have recursive defnitions . ±or example, a stack is either empty, or is another stack with an element pushed onto it. A recursive algorithm can often be written directly from a recursive deFnition. This is a main theme of CMPSCI 250 -- the close connection between algorithm and deFnition makes it easier to prove correctness, often by mathematical induction.
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
More Recursion Examples • “Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.” -- Douglas Hofstadter, in
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 11/22/2011 for the course COMPSCI 187 taught by Professor Barrington during the Fall '11 term at UMass (Amherst).

Page1 / 9

22 - CMPSCI 187: Programming With Data Structures Lecture...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online