4️⃣

# 13.4 Recursive and Iterative Algorithms

## Recursion vs. Iteration

Iterative algorithms generally perform faster and take less memory than their recursive counterparts. So what’s the advantage of recursion? Believe it or not, there are a lot of problems where a recursive solution is easier to write than an iterative one. Problems involving breaking a complex problem into pieces and then aggregating the results are perfect candidates for recursive solutions. For example, performing operations on a tree is much more intuitive than recursion. Additionally, recursive solutions can sometimes take less lines of code than their iterative counterparts.

Fibonacci Sequence Recursive
public static int fibonacciRecursion(int nthNumber) { // use recursion if (nthNumber == 0) { return 0; } else if (nthNumber == 1) { return 1; } return fibonacciRecursion(nthNumber - 1) + fibbonaciRecusion(nthNumber - 2); }

Fibonacci Sequence Iterative
public static int fibonacciLoop(int nthNumber) { //use loop int previouspreviousNumber, previousNumber = 0, currentNumber = 1; for (int = 1; i < nthNumber; i++) { previouspreviousNumber = previousNumber; previousNumber = currentNumber; currentNumber = previouspreviousNumber + previousNumber; } returns currentNumber; }

⚖️