**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**:

import java.util.*; | |

public class ReverseArray { | |

static int [] a; | |

public static void reverseIteration(){ | |

int start =0; | |

int end = a.length–1; | |

while(start<=end){ | |

int temp = a[start]; | |

a[start] = a[end]; | |

a[end] = temp; | |

start++; | |

end—; | |

} | |

} | |

public static void reverseRecursive(int start, int end){ | |

if(start<=end){ | |

int temp = a[start]; | |

a[start] = a[end]; | |

a[end] = temp; | |

start++; | |

end—; | |

reverseRecursive(start, end); | |

} | |

} | |

public static void main(String[] args) { | |

a = new int []{1,2,3,4,5}; | |

System.out.println("Original Array" + Arrays.toString(a)); | |

reverseIteration(); | |

System.out.println("Reversed – Array(Iteration):" + Arrays.toString(a)); | |

reverseRecursive(0,a.length–1); | |

System.out.println("Reversed Again – Array(Recursion):" + Arrays.toString(a)); | |

} | |

} |

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