Skip to content

Commit 8657ea3

Browse files
committed
docs: cross-reference nth-fibonacci implementations via javadocs
1 parent ef986c4 commit 8657ea3

6 files changed

Lines changed: 79 additions & 4 deletions

File tree

src/main/java/com/thealgorithms/dynamicprogramming/Fibonacci.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,21 @@
44
import java.util.Map;
55

66
/**
7-
* @author Varun Upadhyay (https://github.com/varunu28)
7+
* Collection of Dynamic Programming techniques to solve for the n-th Fibonacci number.
8+
* <p>
9+
* This file showcases Top-Down Memoization ({@code fibMemo}), Bottom-Up Tabulation ({@code fibBotUp}),
10+
* and Space-Optimized Iteration ({@code fibOptimized}).
11+
* <p>
12+
* For alternative structural paradigms, mathematical formulas, or verification steps, see:
13+
* <ul>
14+
* <li>{@link com.thealgorithms.maths.FibonacciLoop} - Standard Iterative (Loop) approach</li>
15+
* <li>{@link com.thealgorithms.recursion.FibonacciSeries} - Naive Recursive approach</li>
16+
* <li>{@link com.thealgorithms.maths.FibonacciJavaStreams} - Functional approach using Java Streams</li>
17+
* <li>{@link com.thealgorithms.maths.FibonacciNumberGoldenRation} - Closed-form expression using Binet's formula</li>
18+
* <li>{@link com.thealgorithms.maths.FibonacciNumberCheck} - Utility to check if a given number is a Fibonacci number</li>
19+
* <li>{@link com.thealgorithms.matrix.matrixexponentiation.Fibonacci} - O(log n) Matrix Exponentiation approach</li>
20+
* </ul>
21+
* * @author Varun Upadhyay (https://github.com/varunu28)
822
*/
923
public final class Fibonacci {
1024
private Fibonacci() {

src/main/java/com/thealgorithms/maths/FibonacciJavaStreams.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,23 @@
66
import java.util.stream.Stream;
77

88
/**
9-
* @author: caos321
10-
* @date: 14 October 2021 (Thursday)
9+
* Calculates Fibonacci numbers using a functional programming paradigm with Java Streams.
10+
* <p>
11+
* This specific implementation uses {@link java.util.stream.Stream#iterate} and reductions to generate terms.
12+
* <p>
13+
* For alternative approaches to compute or verify Fibonacci numbers, see:
14+
* <ul>
15+
* <li>{@link com.thealgorithms.maths.FibonacciLoop} - Standard Iterative (Loop) approach</li>
16+
* <li>{@link com.thealgorithms.recursion.FibonacciSeries} - Naive Recursive approach</li>
17+
* <li>{@link com.thealgorithms.dynamicprogramming.Fibonacci} - Dynamic Programming approaches (Memoization, Bottom-Up, Optimized)</li>
18+
* <li>{@link com.thealgorithms.maths.FibonacciNumberGoldenRation} - Closed-form expression using Binet's formula</li>
19+
* <li>{@link com.thealgorithms.maths.FibonacciNumberCheck} - Utility to check if a given number is a Fibonacci number</li>
20+
* <li>{@link com.thealgorithms.matrix.matrixexponentiation.Fibonacci} - O(log n) Matrix Exponentiation approach</li>
21+
* </ul>
22+
* * @author caos321
23+
* @date 14 October 2021 (Thursday)
1124
*/
25+
1226
public final class FibonacciJavaStreams {
1327
private FibonacciJavaStreams() {
1428
}

src/main/java/com/thealgorithms/maths/FibonacciLoop.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@
44

55
/**
66
* This class provides methods for calculating Fibonacci numbers using BigInteger for large values of 'n'.
7+
* <p>
8+
* This specific implementation uses an <b>Iterative approach (Loop)</b> with {@code O(n)} time complexity
9+
* and {@code O(1)} space complexity.
10+
* <p>
11+
* For alternative approaches to compute or verify Fibonacci numbers, see:
12+
* <ul>
13+
* <li>{@link com.thealgorithms.recursion.FibonacciSeries} - Naive Recursive approach</li>
14+
* <li>{@link com.thealgorithms.dynamicprogramming.Fibonacci} - Dynamic Programming approaches (Memoization, Bottom-Up, Optimized)</li>
15+
* <li>{@link com.thealgorithms.maths.FibonacciJavaStreams} - Functional approach using Java Streams</li>
16+
* <li>{@link com.thealgorithms.maths.FibonacciNumberGoldenRation} - Closed-form expression using Binet's formula</li>
17+
* <li>{@link com.thealgorithms.maths.FibonacciNumberCheck} - Utility to check if a given number is a Fibonacci number</li>
18+
* <li>{@link com.thealgorithms.matrix.matrixexponentiation.Fibonacci} - O(log n) Matrix Exponentiation approach</li>
19+
* </ul>
720
*/
821
public final class FibonacciLoop {
922

src/main/java/com/thealgorithms/maths/FibonacciNumberCheck.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@
44
* Fibonacci: 0 1 1 2 3 5 8 13 21 ...
55
* This code checks Fibonacci Numbers up to 45th number.
66
* Other checks fail because of 'long'-type overflow.
7+
* <p>
8+
* This class serves as a <b>verification utility</b> rather than a generation algorithm.
9+
* <p>
10+
* For approaches that actively compute the n-th Fibonacci number, see:
11+
* <ul>
12+
* <li>{@link com.thealgorithms.maths.FibonacciLoop} - Standard Iterative (Loop) approach</li>
13+
* <li>{@link com.thealgorithms.recursion.FibonacciSeries} - Naive Recursive approach</li>
14+
* <li>{@link com.thealgorithms.dynamicprogramming.Fibonacci} - Dynamic Programming approaches (Memoization, Bottom-Up, Optimized)</li>
15+
* <li>{@link com.thealgorithms.maths.FibonacciJavaStreams} - Functional approach using Java Streams</li>
16+
* <li>{@link com.thealgorithms.maths.FibonacciNumberGoldenRation} - Closed-form expression using Binet's formula</li>
17+
* <li>{@link com.thealgorithms.matrix.matrixexponentiation.Fibonacci} - O(log n) Matrix Exponentiation approach</li>
18+
* </ul>
719
*/
820
public final class FibonacciNumberCheck {
921
private FibonacciNumberCheck() {

src/main/java/com/thealgorithms/maths/FibonacciNumberGoldenRation.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@
33
/**
44
* This class provides methods for calculating Fibonacci numbers using Binet's formula.
55
* Binet's formula is based on the golden ratio and allows computing Fibonacci numbers efficiently.
6+
* <p>
7+
* This specific implementation provides a closed-form solution with an expected {@code O(1)} time complexity.
8+
* <p>
9+
* For alternative approaches to compute or verify Fibonacci numbers, see:
10+
* <ul>
11+
* <li>{@link com.thealgorithms.maths.FibonacciLoop} - Standard Iterative (Loop) approach</li>
12+
* <li>{@link com.thealgorithms.recursion.FibonacciSeries} - Naive Recursive approach</li>
13+
* <li>{@link com.thealgorithms.dynamicprogramming.Fibonacci} - Dynamic Programming approaches (Memoization, Bottom-Up, Optimized)</li>
14+
* <li>{@link com.thealgorithms.maths.FibonacciJavaStreams} - Functional approach using Java Streams</li>
15+
* <li>{@link com.thealgorithms.maths.FibonacciNumberCheck} - Utility to check if a given number is a Fibonacci number</li>
16+
* <li>{@link com.thealgorithms.matrix.matrixexponentiation.Fibonacci} - O(log n) Matrix Exponentiation approach</li>
17+
* </ul>
618
*
719
* @see <a href="https://en.wikipedia.org/wiki/Fibonacci_sequence#Binet's_formula">Binet's formula on Wikipedia</a>
820
*/

src/main/java/com/thealgorithms/recursion/FibonacciSeries.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,18 @@
77
* Example:
88
* 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ...
99
* </p>
10+
* <p>
11+
* This specific implementation demonstrates a <b>Naive Recursive approach</b> with {@code O(2^n)} time complexity.
12+
* For more performant variations or different programming paradigms, see:
13+
* <ul>
14+
* <li>{@link com.thealgorithms.maths.FibonacciLoop} - Standard Iterative (Loop) approach</li>
15+
* <li>{@link com.thealgorithms.dynamicprogramming.Fibonacci} - Dynamic Programming variants (Memoization / Bottom-Up)</li>
16+
* <li>{@link com.thealgorithms.maths.FibonacciJavaStreams} - Functional approach using Java Streams</li>
17+
* <li>{@link com.thealgorithms.maths.FibonacciNumberGoldenRation} - Closed-form expression using Binet's formula</li>
18+
* <li>{@link com.thealgorithms.maths.FibonacciNumberCheck} - Utility to check if a given number is a Fibonacci number</li>
19+
* <li>{@link com.thealgorithms.matrix.matrixexponentiation.Fibonacci} - O(log n) Matrix Exponentiation approach</li>
20+
* </ul>
1021
*/
11-
1222
public final class FibonacciSeries {
1323
private FibonacciSeries() {
1424
throw new UnsupportedOperationException("Utility class");

0 commit comments

Comments
 (0)