- 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]