- Given an integer array in java.
- Reverse input array using iterative & recursive algorithm.
Example to reverse an integer array using java
- Let input array is { 1, 2, 3, 4, 5 }
- Reverse input array is {5, 4, 3, 2, 1}
Algorithm: reverse an integer array using iterative algorithm
- Initialize length = inputArray.length & half = length / 2.
- Start traversing the input array till half length of array
- Swap elements of array e.g. first element of array swapped with last element.
- End traversing input array
- Time complexity of algorithm is O (n).
Algorithm: reverse an integer array using recursive algorithm
- Initialize low = 0 & high = inputArray.length – 1
- Swap elements at low & high index
- Increment low & decrement high index
- Recursively call reverse method to reverse rest of elements of array.
- Time complexity of algorithm is O (n).
Program – reverse an integer array in java using recursive & iterative method
package org.learn.arrays; import java.util.Arrays; import java.util.Collections; public class reverseArray { public static void main(String[] args) { int [] inputArray = { 1 , 2 , 3 , 4 , 5 }; System.out.println( "1. Input Array is :" + Arrays.toString(inputArray)); int [] copy = inputArray.clone(); reverseArrayIterative(copy); String reverseArray = Arrays.toString(copy); System.out.println( "2. Iterative method - reverse array :" + reverseArray); copy = inputArray.clone(); reverseArrayRecursive(copy, 0 , copy.length - 1 ); reverseArray = Arrays.toString(copy); System.out.println( "3. Recursive method - reverse array :" + reverseArray); } private static void reverseArrayIterative( int [] inputArray) { int length = inputArray.length; int half = length / 2 ; for ( int index = 0 ; index < half; index++) { int temp = inputArray[index]; inputArray[index] = inputArray[length - 1 - index]; inputArray[length - 1 - index] = temp; } } private static void reverseArrayRecursive( int [] inputArray, int low, int high) { if (high < low) return ; int temp = inputArray[low]; inputArray[low] = inputArray[high]; inputArray[high ] = temp; reverseArrayRecursive(inputArray, low + 1 , high - 1 ); } } |
Output – reverse an integer array in java using recursive & iterative method
1. Input Array is :[1, 2, 3, 4, 5] 2. Iterative method - reverse array :[5, 4, 3, 2, 1] 3. Recursive method - reverse array :[5, 4, 3, 2, 1] |