diff --git a/Maths/FindMax.java b/Maths/FindMax.java index 739cda39b..f98ec5d06 100644 --- a/Maths/FindMax.java +++ b/Maths/FindMax.java @@ -5,7 +5,7 @@ public class FindMax { //Driver public static void main(String[] args) { int[] array = {2, 4, 9, 7, 19, 94, 5}; - System.out.println("max = " + findMax(array)); + assert findMax(array) == 94; } /** diff --git a/Maths/FindMaxRecursion.java b/Maths/FindMaxRecursion.java index 3ebcaf392..6d0616269 100644 --- a/Maths/FindMaxRecursion.java +++ b/Maths/FindMaxRecursion.java @@ -6,7 +6,8 @@ public class FindMaxRecursion { int low = 0; int high = array.length - 1; - System.out.println("max value is " + max(array, low, high)); + assert max(array, low, high) == 94; + assert max(array, array.length) == 94; } /** @@ -27,6 +28,17 @@ public class FindMaxRecursion { int leftMax = max(array, low, mid); //get max in [low, mid] int rightMax = max(array, mid + 1, high); //get max in [mid+1, high] - return leftMax >= rightMax ? leftMax : rightMax; + return Math.max(leftMax, rightMax); + } + + /** + * Get max of array using recursion algorithm + * + * @param array contains elements + * @param len length of given array + * @return max value of {@code array} + */ + public static int max(int[] array, int len) { + return len == 1 ? array[0] : Math.max(max(array, len - 1), array[len - 1]); } } diff --git a/Maths/FindMin.java b/Maths/FindMin.java index 90b7ea109..a52b3ff20 100644 --- a/Maths/FindMin.java +++ b/Maths/FindMin.java @@ -5,7 +5,7 @@ public class FindMin { //Driver public static void main(String[] args) { int[] array = {2, 4, 9, 7, 19, 94, 5}; - System.out.println("min = " + findMin(array)); + assert findMin(array) == 2; } /** diff --git a/Maths/FindMinRecursion.java b/Maths/FindMinRecursion.java index 292ffc30e..c1b5f2856 100644 --- a/Maths/FindMinRecursion.java +++ b/Maths/FindMinRecursion.java @@ -2,11 +2,12 @@ package Maths; public class FindMinRecursion { public static void main(String[] args) { - int[] array = {2, 4, 9, 7, 19, 94, 5}; + int[] array = {2, 4, 9, -7, 19, 94, 5}; int low = 0; int high = array.length - 1; - System.out.println("min value is " + min(array, low, high)); + assert min(array, low, high) == -7; + assert min(array, array.length) == -7; } /** @@ -27,6 +28,17 @@ public class FindMinRecursion { int leftMin = min(array, low, mid); //get min in [low, mid] int rightMin = min(array, mid + 1, high); //get min in [mid+1, high] - return leftMin <= rightMin ? leftMin : rightMin; + return Math.min(leftMin, rightMin); + } + + /** + * Get min of array using recursion algorithm + * + * @param array contains elements + * @param len length of given array + * @return min value of {@code array} + */ + public static int min(int[] array, int len) { + return len == 1 ? array[0] : Math.min(min(array, len - 1), array[len - 1]); } }