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; }
Copyright © 2021 Code 4 Tomorrow. All rights reserved. The code in this course is licensed under the MIT License. If you would like to use content from any of our courses, you must obtain our explicit written permission and provide credit. Please contact classes@code4tomorrow.org for inquiries.