Reverse an
integer array using recursion.
import java.util.Objects; public class ReverseArrayRecursion { public static void reverseArray(int arr[]) { Objects.nonNull(arr); reverse(arr, 0, arr.length - 1); } private static void reverse(int arr[], int start, int end) { if (start > end) return; int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; reverse(arr, ++start, --end); } }
Following is
the junit test case for above application.
import static org.junit.Assert.assertTrue; import java.util.Arrays; import org.junit.Test; public class ReverseArrayRecursionTest { @Test public void test1() { int arr1[] = { 1, 2, 3, 4, 5, 6 }; int expected1[] = { 6, 5, 4, 3, 2, 1 }; int arr2[] = { 1, 2, 3, 4, 5, 6, 7 }; int expected2[] = { 7, 6, 5, 4, 3, 2, 1 }; int arr3[] = { 1 }; int expected3[] = { 1 }; ReverseArrayRecursion.reverseArray(arr1); ReverseArrayRecursion.reverseArray(arr2); ReverseArrayRecursion.reverseArray(arr3); assertTrue(Arrays.equals(arr1, expected1)); assertTrue(Arrays.equals(arr2, expected2)); assertTrue(Arrays.equals(arr3, expected3)); } }
No comments:
Post a Comment