Article image Data Types: Recursion

3.16. Data Types: Recursion

Page 19 | Listen in audio

3.16. Data Types: Recursion

Recursion is a fundamental concept in computer science and an essential topic in logic programming. It refers to the technique of making a program call itself as part of its execution. This can be incredibly useful for solving problems that can be broken down into smaller problems of a similar nature.

Recursion is an alternative to using loops to repeat actions. Rather than defining a loop that runs until a certain condition is met, a recursive function runs until a base case is met.

What is Recursion?

Recursion is a problem solving method where the solution to a particular problem is based on solving smaller instances of the same problem. A classic example of a problem that can be solved using recursion is calculating the factorial of a number. The factorial of a number n is the product of all positive integers less than or equal to n. This can be solved using recursion, as the factorial of n (represented as n!) can be expressed as n * (n-1)!.

How does Recursion work?

When a function is called in a program, the system allocates a block of memory to store the variable values ​​and return addresses for the function. When a function is called, a new memory block is allocated on top of the previous memory block. This process continues until the termination condition is met, at which point the function stops calling itself. Then the system starts deallocating memory blocks, starting with the most recent memory block and working back to the original memory block.

Recursion Example

A common example of recursion is the Fibonacci sequence, where each number is the sum of the two previous numbers. The sequence starts with 0 and 1. The next numbers are obtained by adding the previous two numbers to get the next number. The sequence looks like this: 0, 1, 1, 2, 3, 5, 8, 13, 21, and so on. This can be easily programmed using recursion.

def fibonacci(n):
    if n <= 1:
       return n
    else:
       return(fibonacci(n-1) + fibonacci(n-2))

In the above function, the termination condition is when n is equal to or less than 1. In this case, the function returns n. Otherwise, the function is called twice, once with n-1 and once with n-2, and returns the sum of these two values.

Benefits and Disadvantages of Recursion

Recursion can make code cleaner and easier to understand. Complex problems that would be difficult to solve using loops can be easily solved using recursion.

However, recursion also has its drawbacks. It can lead to inefficient use of memory, as each function call requires a separate block of memory. Also, recursion can lead to slower performance as memory allocation and deallocation takes time. Furthermore, if the termination condition is not met, the function will continue to call itself indefinitely, leading to a stack overflow error.

In summary, recursion is a powerful tool in logic programming, but it must be used with care. It is important to understand how recursion works and what its advantages and disadvantages are before deciding to use it.

Now answer the exercise about the content:

What is recursion in computer science and how does it work?

You are right! Congratulations, now go to the next page

You missed! Try again.

Article image Variables and Constants

Next page of the Free Ebook:

20Variables and Constants

3 minutes

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text