Reverse the given Array without using built in function

Objective: Given a array, write an algorithm to reverse the array.

Example:

int a[] = {1, 2, 3, 4, 5}
Output: {5, 4, 3, 2, 1}

Approach:

  • It’s obvious that you cannot use any built-in function reverse it.
  • It’s a simple solution, we will solve it using recursive and non-recursive way.
  • Take 2 elements at a time, one from the from start and one from the end and swap them.
  • Now for recursion, Make a recursive call to rest of the string and for non-recursive solution, use the for loop and swap the elements start +1 and end +1.

Code:

Output:

Original Array[1, 2, 3, 4, 5]
Reversed - Array(Iteration):[5, 4, 3, 2, 1]
Reversed Again - Array(Recursion):[1, 2, 3, 4, 5]

__________________________________________________
Top Companies Interview Questions..-

Google Microsoft Amazon Facebook more..

If you find anything incorrect or you feel that there is any better approach to solve the above problem, please write comment.
__________________________________________________

  • Aman Rustagi

    Thanks for sharing this program. Here is an alternate C program to reverse an array using recursion.

  • Vijay Kumar

    package datastructues;

    public class ReverseArray {

    static int[] a = new int[] { 1, 2, 3, 4, 11, 10, 5, 6, 7, 8 };

    public static void main(String[] args) {

    for(int k = a.length-1; k>=0; k–)
    {
    System.out.println(a[k]);
    }

    recurse(a, a.length -1);

    int[] reverseArray = reverseArray(a);

    System.out.println(reverseArray);
    }
    private static void recurse(int[] a, int total) {
    if(total >= 0)
    {
    System.out.println(a[total]);
    recurse(a, –total);
    }
    }

    private static int[] reverseArray(int[] a)
    {
    for (int i = 1; i <= a.length / 2; i++) {
    a[i-1] = a[i-1] + a[a.length-i];
    a[a.length-i] = a[i-1] – a[a.length-i];
    a[i-1] = a[i-1] – a[a.length-i];
    }
    return a;
    }
    }

%d bloggers like this: