Reverse an Array
Understanding Array Reversal
Reversing an array involves changing the order of elements so that the first element becomes the last and vice versa.
We will explore three different methods to reverse an array using C.
Method 1: Using Iteration
This method iterates through the array swapping elements from both ends.
#include <stdio.h> void reverseArray(int arr[], int n) { int start = 0, end = n - 1, temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } int main() { int arr[] = {1, 2, 3, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); reverseArray(arr, n); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; }
Method 2: Using Recursion
This method reverses the array using a recursive function.
#include <stdio.h> void reverseArrayRecursive(int arr[], int start, int end) { if (start >= end) return; int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; reverseArrayRecursive(arr, start + 1, end - 1); } int main() { int arr[] = {1, 2, 3, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); reverseArrayRecursive(arr, 0, n - 1); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; }
Method 3: Using a Second Array
This method stores the reversed elements in a new array.
#include <stdio.h> void reverseArrayNew(int arr[], int n) { int revArr[n]; for (int i = 0; i < n; i++) { revArr[i] = arr[n - i - 1]; } for (int i = 0; i < n; i++) { printf("%d ", revArr[i]); } } int main() { int arr[] = {1, 2, 3, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); reverseArrayNew(arr, n); return 0; }