From 029dd85646b3ca1d3f827552a56f873221f4a246 Mon Sep 17 00:00:00 2001 From: Hardik Pawar <97388607+Hardvan@users.noreply.github.com> Date: Thu, 10 Oct 2024 01:06:00 +0530 Subject: [PATCH] Add tests, enhance docs in `KadaneAlgorithm.java` (#5646) --- DIRECTORY.md | 1 + .../dynamicprogramming/KadaneAlgorithm.java | 44 ++++++++----- .../KadaneAlgorithmTest.java | 61 +++++++++++++++++++ 3 files changed, 92 insertions(+), 14 deletions(-) create mode 100644 src/test/java/com/thealgorithms/dynamicprogramming/KadaneAlgorithmTest.java diff --git a/DIRECTORY.md b/DIRECTORY.md index 94f5890bb..2b595e7a6 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -792,6 +792,7 @@ * [EditDistanceTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/EditDistanceTest.java) * [EggDroppingTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/EggDroppingTest.java) * [FibonacciTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/FibonacciTest.java) + * [KadaneAlgorithmTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/KadaneAlgorithmTest.java) * [KnapsackMemoizationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/KnapsackMemoizationTest.java) * [KnapsackTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/KnapsackTest.java) * [LevenshteinDistanceTests](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/LevenshteinDistanceTests.java) diff --git a/src/main/java/com/thealgorithms/dynamicprogramming/KadaneAlgorithm.java b/src/main/java/com/thealgorithms/dynamicprogramming/KadaneAlgorithm.java index 905815d10..7a0a3da94 100644 --- a/src/main/java/com/thealgorithms/dynamicprogramming/KadaneAlgorithm.java +++ b/src/main/java/com/thealgorithms/dynamicprogramming/KadaneAlgorithm.java @@ -1,36 +1,52 @@ package com.thealgorithms.dynamicprogramming; /** - * @author Siddhant Swarup Mallick - * Program description - To find the maximum subarray sum + * This class implements Kadane's Algorithm to find the maximum subarray sum + * within a given array of integers. The algorithm efficiently computes the maximum + * sum of a contiguous subarray in linear time. + * + * Author: Siddhant Swarup Mallick */ public final class KadaneAlgorithm { private KadaneAlgorithm() { } /** - * OUTPUT : - * Input - {89,56,98,123,26,75,12,40,39,68,91} - * Output: it returns either true or false - * 1st approach Time Complexity : O(n) - * Auxiliary Space Complexity : O(1) + * Computes the maximum subarray sum using Kadane's Algorithm and checks + * if it matches a predicted answer. + * + * @param a The input array of integers for which the maximum + * subarray sum is to be calculated. + * @param predictedAnswer The expected maximum subarray sum to be verified + * against the computed sum. + * @return true if the computed maximum subarray sum equals the predicted + * answer, false otherwise. + * + *
Example:
+ *+ * Input: {89, 56, 98, 123, 26, 75, 12, 40, 39, 68, 91} + * Output: true if the maximum subarray sum is equal to the + * predicted answer. + *+ * + *
Algorithmic Complexity:
+ *