Computer Algorithms II Lecture Notes

9 September 2008 • Recursion


Outline

  • Some problems.

  • Structural, inductive, and degenerate recursion.

  • Use and abuse.

  • Advantages and disadvantages.

  • Examples

  • Implementation and costs.

recursion

A Boxy Picture

Investments

Choices

Finding Max Sum Paths

Recursion

Recursion Format

Recursion Advantages

Recursion Disadvantages

Finding Recursion

Structural Recursion

Recursive Data Structures

Example

Inductive Recursion

Example

Example Code

Degenerate Recursion

Unordered Array Searching

Ordered Array Searching

Recursion Requirements

Recursive Design

Recursion Pitfalls

Wrong Base Cases

Incomplete Base Cases

Stamp Counting Code

Revised Code

Bad Subdivisions

Quicksort

Improper Combinations

Closest Points

Dividing Closest Points

Extended Example

Iterative Matrix Sum

Matrix Decomposition

Recursive Matrix Sum

Another Matrix Decomposition

Another Matrix Recursion

Which is Better?

Does It?

Recursion’s Cost

Implementing Recursion

Activation Records

Activation Stack

Recursion’s Cost

Tail Calls

Tail-Call Problems

Explicit Storage Management

Example

References

Credits


This page last modified on 28 August 2008.

Creative
    Commons License