Reverse The Array

Kartikeya Mishra
4 min readOct 19, 2023

--

Data Structure and Algorithm Interview Question

Complete Code :

#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;
}

int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);

cout << "Original array: ";
printArray(arr, size);

rvereseArray(arr, 0, size - 1);

cout << "Reversed array: ";
printArray(arr, size);

return 0;
}

Reverse Array :

/* 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);
}

English:

The rvereseArray function takes three arguments: an integer array arr, and two indices start and end. It reverses the elements of the array in the specified range using recursion. Here's a breakdown:

  • If start is greater than or equal to end, it means the array or subarray is already reversed, so it returns without doing anything.
  • Otherwise, it swaps the elements at start and end indices using a temporary variable temp.
  • Then, it calls itself recursively with start + 1 and end - 1, effectively moving towards the center of the array until it reverses the entire array.

This function essentially reverses the order of elements in the array within the specified range.

Hindi:

rvereseArray फ़ंक्शन तीन प्राथमिक विधियों को स्वीकार करता है: एक पूर्णांक एरे arr, और दो सूचीए start और end। यह उस अनुभाग के तत्वों को पलटता है जो रिक्शन का उपयोग करके दिए गए हैं। यहां एक विस्तार में विश्लेषण किया गया है:

  • यदि start end से अधिक है या उसके बराबर है, तो इसका मतलब है कि एरे या सबएरे पहले से पलटा हुआ है, इसलिए यह कुछ नहीं करता है।
  • अन्यथा, यह एक स्थायी चर temp का उपयोग करके start और end सूचीओं के तत्वों को बदलता है।
  • फिर, यह खुद को रिकर्सिव रूप से start + 1 और end - 1 के साथ कॉल करता है, प्रभावी रूप से सूची के केंद्र की ओर बढ़ता है, जब तक यह पूरे एरे को पलट नहीं देता।

यह फ़ंक्शन मूल एरे के तत्वों के क्रम को उलट देता है जिसे निर्दिष्ट सीमा में।

Hinglish:

rvereseArray function teen arguments leti hai: ek integer array arr, aur do indices start aur end. Is function mein di gayi range ke andar array ke elements ko ulta karti hai, recursion ka istemal karke. Yahan par ek vistaar se samjhate hain:

  • Agar start end se bada ya barabar hai, to iska matlab hai ki array ya subarray pahle se hi ulta hua hai, isliye kuch nahi kiya jata, function yahaan se return ho jata hai.
  • Varna, yah start aur end indices par maujood elements ko ek temporary variable temp ka istemal karke swap karti hai.
  • Fir, yah khud ko recursive tareeke se call karti hai start + 1 aur end - 1 ke sath, is tarah se array ke beech ke hisse ki taraf badhti hai, jab tak pura array ulta nahi ho jata.

Print Function:

/* Utility function to print an array */
void printArray(int arr[], int size)
{
for (int i = 0; i < size; i++)
cout << arr[i] << " ";

cout << endl;
}

English:

The printArray function takes an integer array arr and its size as arguments. It's responsible for printing the elements of the array, separated by spaces, followed by a newline character. It's a simple utility function for displaying the array.

Hindi:

printArray फ़ंक्शन एक पूर्णांक एरे arr और उसका आकार को पैरामीटर के रूप में लेता है। इसका कार्य है कि एरे के तत्वों को प्रिंट करना, अंतर से अलग करके, एक न्यूलाइन वर्णक देने के बाद। यह एरे को प्रदर्शित करने के लिए एक साधारण साहायक फ़ंक्शन है।

Hinglish:

printArray function ek integer array arr aur uski size ko argument ke roop mein leti hai. Iska kaam array ke elements ko dikhana hai, unhein space se alag karke, aur ant mein newline character ke sath. Yeh ek sadharan utility function hai jiska upayog array ko dikhane ke liye hota hai.

Main Function:

int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);

cout << "Original array: ";
printArray(arr, n);

rvereseArray(arr, 0, n - 1);

cout << "Reversed array: ";
printArray(arr, n);

return 0;
}

English:

In this main function, we define an array arr, print the original array, reverse it using rvereseArray, print the reversed array, and finally return 0 to indicate successful program execution.

Hindi:

इस मुख्य (main) फ़ंक्शन में, हम एक ऐरे ‘arr’ की परिभाषा करते हैं, मूल एरे को प्रिंट करते हैं, ‘rvereseArray’ का उपयोग करके इसे उलटते हैं, उलटे हुए एरे को प्रिंट करते हैं, और आखिरकार सफल प्रोग्राम का पूरा होने का संकेत देने के लिए 0 लौटाते हैं।

Hinglish:

Is main function mein, hum ek array ‘arr’ ko define karte hain, original array ko print karte hain, ‘rvereseArray’ ka istemal karke ise reverse karte hain, reverse array ko print karte hain, aur ant mein 0 vapas karte hain, jo saphal program chalane ka sanket dene ke liye hota hai.

--

--

Kartikeya Mishra

Computer science engineer nomad exploring digital world. Learning and teaching while having fun.