Interview Question : Reverse an Array in C++
3 min readOct 21, 2023
Data Structure and Algorithm Interview Question
void reverseArray(vector<int> &arr, int m)
{
int start = m + 1;
int end = arr.size() - 1;
while (start < end) {
swap(arr[start], arr[end]);
start++;
end--;
}
}
English :
Here’s an explanation of the reverseArray
function:
- It’s a void function, which means it doesn’t return any value but instead modifies the vector
arr
passed by reference. vector<int> &arr
is the input vector, andint m
is the index of the element that marks the end of the portion to be reversed.start
is initialized tom + 1
, andend
is initialized to the index of the last element in the vectorarr
.- The function uses a while loop to swap elements in the vector
arr
starting from indexstart
and moving towards indexend
. It continues swapping elements untilstart
is no longer less thanend
. - Inside the loop,
swap(arr[start], arr[end])
is used to swap the elements at positionsstart
andend
. start
is incremented, andend
is decremented at the end of each iteration to move toward the center of the portion being reversed.
Hindi :
यहां reverseArray
फ़ंक्शन की विवरण है:
- यह एक void फ़ंक्शन है, जिसका मतलब है कि यह कोई मान नहीं वापस करता है, बल्कि वेक्टर
arr
को संदर्भ में पास किया जाता है और उसे संशोधित करता है। vector<int> &arr
इनपुट वेक्टर है, औरint m
उस तत्व का सूची में अंत करने का सूची क्रम संकेत करता है।start
कोm + 1
के साथ प्रारंभ किया जाता है, औरend
को वेक्टरarr
में अंतिम तत्व के सूची में स्थानांतरित किया जाता है।- फ़ंक्शन व्हाइल लूप का उपयोग करता है ताकि वेक्टर
arr
के तत्वों को स्वाप कर सके,start
से आरंभ करकेend
की ओर बढ़ता है।start
end
से अधिक नहीं होने तक तत्वों को स्वाप करना जारी रहता है। - लूप के अंदर,
swap(arr[start], arr[end])
का उपयोग स्थानांतरण करने के लिए किया जाता है,start
औरend
के स्थानों पर। start
को बढ़ाया जाता है, और प्रत्येक अवधि के अंत मेंend
को घटाया जाता है, जो स्थानांतरण किया जाने वाले भाग के केंद्र की ओर बढ़ने के लिए होता है।
Hinglish :
Yeh ‘reverseArray’ function ki vistar se samjhane:
- Yeh ek void function hai, iska matlab hai ki yeh koi return value nahi deta, balki vector ‘arr’ ko reference ke roop mein pass karke modify karta hai.
- ‘vector<int> &arr’ input vector hai, aur ‘int m’ uss element ko list mein ant karne ka index indicate karta hai.
- ‘start’ ‘m + 1’ se shuru kiya jata hai, aur ‘end’ list ‘arr’ mein antim element ke index se initialize kiya jata hai.
- Function ek while loop ka istemal karta hai vector ‘arr’ ke element ko swap karne ke liye, ‘start’ se shuru karke ‘end’ ki or badhata hai. Yeh tab tak element ko swap karta hai jab tak ‘start’ ‘end’ se chota na ho jaye.
- Loop ke andar, ‘swap(arr[start], arr[end])’ ka istemal element ko swap karne ke liye hota hai.
- ‘start’ badhaya jata hai, aur har iteration ke ant mein ‘end’ ko kam kiya jata hai, jisse swap kiye jane wale portion ke center ki or badha ja sake.