0% found this document useful (0 votes)
12 views

Recursion in Java

Uploaded by

nnaveenjaimm
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Recursion in Java

Uploaded by

nnaveenjaimm
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Recursion in Java

What is Recursion?

Recursion in Java is a process in which a method calls itself in order to solve a problem. Recursive

methods solve complex problems by breaking them down into simpler subproblems, each of which

is a smaller instance of the original problem.

How Recursion Works

A recursive method includes two main components:

- **Base Case**: The condition under which the recursion stops, preventing infinite loops.

- **Recursive Call**: A call to the method itself, with modified parameters, to solve a smaller instance

of the problem.

Advantages and Disadvantages of Recursion

- **Advantages**: Recursion can simplify code by reducing complex problems into simple

subproblems.

- **Disadvantages**: Recursive calls may use more memory and can be slower than iterative

solutions for certain problems.

Example of Recursion: Factorial Calculation

Here is an example of recursion in Java for calculating the factorial of a number:

public class Factorial {

public int factorial(int n) {

// Base case

if (n <= 1) {

return 1;

}
// Recursive call

return n * factorial(n - 1);

In this example, the factorial method calls itself with a decremented value of 'n' until it reaches the

base case (n <= 1).

Types of Recursion

- **Direct Recursion**: A method that directly calls itself.

- **Indirect Recursion**: A method that calls another method, which in turn calls the original method.

Key Considerations

- Ensure that a base case exists to prevent infinite recursion.

- Recursion may not be efficient for all problems, particularly those with large input sizes.

- Tail recursion (where recursive calls are the last operation) can be optimized by some compilers,

although Java does not currently support tail-call optimization.

You might also like