Read Time:7 Minute, 32 Second
We have taken some example to reverse an Array or String.
Ex:
Input : arr[] = {1, 2, 3} Output : arr[] = {3, 2, 1} Input : arr[] = {4, 5, 1, 2} Output : arr[] = {2, 1, 5, 4}
1. Initialize start and end indexes as start = 0, end = n-1 2. In a loop, swap arr[start] with arr[end] and change start and end as follows : 3.start = start +1, end = end – 1
Start writing code on your compiler :
C++ Solution:
// Iterative C# program to reverse an // array using System; class Program { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int []arr, int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility that prints out an array on a line */ static void printArray(int []arr, int size) { for (int i = 0; i < size; i++) Console.Write(arr[i] + " "); Console.WriteLine(); } // Driver function public static void Main() { int []arr = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); Console.Write("Reversed array is \n"); printArray(arr, 6); } }
C Solution:
// Iterative C program to reverse an array #include<stdio.h> /* Function to reverse arr[] from start to end*/ void rvereseArray(int arr[], int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility that prints out an array on a line */ void printArray(int arr[], int size) { int i; for (i=0; i < size; i++) printf("%d ", arr[i]); printf("\n"); } /* Driver function to test above functions */ int main() { int arr[] = {1, 2, 3, 4, 5, 6}; int n = sizeof(arr) / sizeof(arr[0]); printArray(arr, n); rvereseArray(arr, 0, n-1); printf("Reversed array is \n"); printArray(arr, n); return 0; }
Java Solution:
// Iterative java program to reverse an // array public class Program { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int arr[], int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility that prints out an array on a line */ static void printArray(int arr[], int size) { for (int i = 0; i < size; i++) System.out.print(arr[i] + " "); System.out.println(); } // Driver code public static void main(String args[]) { int arr[] = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); System.out.print("Reversed array is \n"); printArray(arr, 6); } }
Python Solution:
# Iterative python program to reverse an array # Function to reverse A[] from start to end def reverseList(A, start, end): while start < end: A[start], A[end] = A[end], A[start] start += 1 end -= 1 # Driver function to test above function A = [1, 2, 3, 4, 5, 6] print(A) reverseList(A, 0, 5) print("Reversed list is") print(A)
C# Solution:
// Iterative C# program to reverse an // array using System; class Program { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int []arr, int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility that prints out an array on a line */ static void printArray(int []arr, int size) { for (int i = 0; i < size; i++) Console.Write(arr[i] + " "); Console.WriteLine(); } // Driver function public static void Main() { int []arr = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); Console.Write("Reversed array is \n"); printArray(arr, 6); } }
PHP Solution:
<?php // Iterative PHP program // to reverse an array /* Function to reverse $arr from start to end*/ function rvereseArray(&$arr, $start, $end) { while ($start < $end) { $temp = $arr[$start]; $arr[$start] = $arr[$end]; $arr[$end] = $temp; $start++; $end--; } } /* Utility function to print an array */ function printArray(&$arr, $size) { for ($i = 0; $i < $size; $i++) echo $arr[$i] . " "; echo "\n"; } // Driver code $arr = array(1, 2, 3, 4, 5, 6); // To print original array printArray($arr, 6); // Function calling rvereseArray($arr, 0, 5); echo "Reversed array is" ."\n"; // To print the Reversed array printArray($arr, 6);
JavaScript Solution:
// Iterative Javascript program to reverse an array /* Function to reverse arr[] from start to end*/ function rvereseArray(arr,start,end) { while (start < end) { var temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility function to print an array */ function printArray(arr,size) { for (var i = 0; i < size; i++){ console.log(arr[i]); } } /* Driver function to test above functions */ var arr= [1, 2, 3, 4, 5, 6]; var n = 6; // To print original array printArray(arr, n); // Function calling rvereseArray(arr, 0, n-1); console.log("Reversed array is");
Output :
1 2 3 4 5 6
Reversed array is:
6 5 4 3 2 1
Time Complexity : O(n)
Recursive Way :
1. Initialize start and end indexes as start = 0, end = n-1
2. Swap arr[start] with arr[end]
3. Recursively call reverse for rest of the array.
Below is the implementation of the above approach :
// Recursive C++ program to reverse an array #include <bits/stdc++.h> using namespace std; /* Function to reverse arr[] from start to end*/ void rvereseArray(int arr[], int start, int end) { if (start >= end) return; int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // Recursive Function calling rvereseArray(arr, start + 1, end - 1); } /* Utility function to print an array */ void printArray(int arr[], int size) { for (int i = 0; i < size; i++) cout << arr[i] << " "; cout << endl; } /* Driver function to test above functions */ int main() { int arr[] = {1, 2, 3, 4, 5, 6}; // To print original array printArray(arr, 6); // Function calling rvereseArray(arr, 0, 5); cout << "Reversed array is" << endl; // To print the Reversed array printArray(arr, 6); return 0; }
// Recursive C program to reverse an array #include <stdio.h> /* Function to reverse arr[] from start to end*/ void rvereseArray(int arr[], int start, int end) { int temp; if (start >= end) return; temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; rvereseArray(arr, start+1, end-1); } /* Utility that prints out an array on a line */ void printArray(int arr[], int size) { int i; for (i=0; i < size; i++) printf("%d ", arr[i]); printf("\n"); } /* Driver function to test above functions */ int main() { int arr[] = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); printf("Reversed array is \n"); printArray(arr, 6); return 0; }
// Recursive Java Program to reverse an array import java.io.*; class ReverseArray { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int arr[], int start, int end) { int temp; if (start >= end) return; temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; rvereseArray(arr, start+1, end-1); } /* Utility that prints out an array on a line */ static void printArray(int arr[], int size) { for (int i=0; i < size; i++) System.out.print(arr[i] + " "); System.out.println(""); } /*Driver function to check for above functions*/ public static void main (String[] args) { int arr[] = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); System.out.println("Reversed array is "); printArray(arr, 6); } }
# Recursive python program to reverse an array # Function to reverse A[] from start to end def reverseList(A, start, end): if start >= end: return A[start], A[end] = A[end], A[start] reverseList(A, start+1, end-1) # Driver function to test above function A = [1, 2, 3, 4, 5, 6] print(A) reverseList(A, 0, 5) print("Reversed list is") print(A)
<?php // Iterative PHP program // to reverse an array /* Function to reverse $arr from start to end*/ function rvereseArray(&$arr, $start, $end) { if ($start >= $end) return; $temp = $arr[$start]; $arr[$start] = $arr[$end]; $arr[$end] = $temp; //Recursive Function calling rvereseArray($arr, $start + 1, $end - 1); } /* Utility function to print an array */ function printArray(&$arr, $size) { for ($i = 0; $i < $size; $i++) echo $arr[$i] . " "; echo "\n"; } // Driver code $arr = array(1, 2, 3, 4, 5, 6); // To print original array printArray($arr, 6); // Function calling rvereseArray($arr, 0, 5); echo "Reversed array is" ."\n"; // To print the Reversed array printArray($arr, 6);
// Recursive Javascript program to reverse an array /* Function to reverse arr[] from start to end*/ function rvereseArray(arr,start,end) { var temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // Recursive Function calling if (start+1<end-1){ rvereseArray(arr, start + 1, end - 1); } } /* Utility function to print an array */ function printArray(arr,size) { for (var i = 0; i < size; i++){ console.log(arr[i]); } } /* Driver function to test above functions */ var arr= [1, 2, 3, 4, 5, 6]; // To print original array printArray(arr, 6); // Function calling rvereseArray(arr, 0, 5); console.log("Reversed array is"); // To print the Reversed array printArray(arr, 6);
Output :
1 2 3 4 5 6
Reversed array is
6 5 4 3 2 1
Please suggest me if any other best solution you have.
Thanks
Average Rating