Download presentation

Presentation is loading. Please wait.

1
**New Mexico Computer Science For All**

Recursion Maureen Psaila-Dombrowski

2
**Recursion What is Recursion?**

It is a concept/method used in computer science and mathematics Recursive problem: The problem can be described as a reduced or smaller form of the same problem Sometimes the problem gets so small that the solution of the small problem is trivial can solved recursively or has a recursive implementation Recursion occurs in computer science when you use a recursive implementation ….WHAT?

3
**Recursion - Example 5! = 5 * 4 * 3 * 2 * 1**

Classic example is a factorial: n! 5! 5! = 5 * 4 * 3 * 2 * 1

4
**Recursion - Example 5! = 5 * 4 * 3 * 2 * 1 NON – recursive definition**

But ! = 4 * 3 * 2 * 1 5! = 5 * 4! Recursive definition SO… The problem can be broken down into a smaller or reduced version of the same problem Maybe it can be solved recursively !

5
**Recursion - Example TRIVIAL CASE**

Look for the smallest MOST TRIVIAL form of the problem: 5! = 5 * 4 * 3 * 2 * 1 5! = 5 * 4! but 4! = 4 * 3 * 2 * 1 and 4! = 4 * 3! since 3! = 3 * 2 * 1 but 3! = 3 * 2 * 1 and 3! = 3 * 2! since 2! = 2 * 1 but 2! = 2 * 1! since 1! = 1 TRIVIAL CASE

6
**5! = 5 * 4! Can be solved Recursively**

Recursion - Example So 5! = 5 * 4 * 3 * 2 * 1 Or 5! = 5 * 4! Can be solved Recursively Or in general n! = n * n-1 * n-2 * …* 3 * 2 * 1 n! = n * (n-1)!

7
**Recursion in Computer Languages**

Implemented by calling a function or procedure in the body of that same function or procedure. must be prevented from consuming excessive computing resources Factorial Psuedocode factorial N if N <=1 (then factorial = 1) (else factorial = N * factorial[N-1]) this is done by testing for trivial cases (or other stopping conditions), and avoiding recursive calls in those cases.

8
**Recursive Programming**

Pros Recursive description --- simple, elegant, and easy to explain and understand. Recursive implementation --- straightforward to build and verify. Cons Can be difficult to understand at first. In some programming languages not as efficient as iteratively Can be difficult to program circularity infinite loop MUST PUT IN A STOP Once you have a recursive description a recursive iimplementatio…

9
Why use Recursion? So if can be less efficient and difficult to understand and program, why use recursion? The problem/program may be easier to understand, solve and program using recursion When you have a recursive description recursive solution is the most direct solution path Usually creating an easy to verify code is more important than creating the most efficient code

10
Recursion in NetLogo Draw a spiral from the outside in:

11
**Recursion in NetLogo Iteratively Specify initial line length**

Interative Draw While (condition?), repeat Turtle draws a line Turtle turns right Reduce line length

12
GO TO MODEL

13
**But we forgot something!**

Recursion in NetLogo Recursively Specify initial line length Recursive Draw Turtle draws a line Turtle turns right Draw a new line with a reduced length But we forgot something! We Forgot The STOP!

14
**Recursion in NetLogo Recursively Specify initial line length**

Recursive Draw If (condition?) STOP Turtle draws a line Turtle turns right draw a new live with a reduced length

15
GO to Code

16
Important Note For every recursive algorithm…… ….. There is an equivalent iterative (looping) algorithm!!

17
**Summary Recursion: CS method**

The solution depends on the solution to smaller instances of the same problem In most programming languages a function or procedure calling itself in the code Pros: shorter, easier to understand, more elegant Cons: often not as efficient as iterative and can be difficult to program Why use recursion? The problem/program is easier to understand using recursion The problem is easier to solve using recursion

Similar presentations

OK

Chapter 4 Recursion. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Explain the underlying concepts of recursion.

Chapter 4 Recursion. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Explain the underlying concepts of recursion.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Save ppt on ipad mini Ppt on rainy season in india Ppt on network switching systems Seeley's anatomy and physiology ppt on cells Ppt on seasons for kindergarten Ppt on indian culture and heritage Ppt on transportation and excretion in human body Ppt on council of ministers cambodia Ppt on information system audit Ppt on soft skills free download