इस लेख में हम चर्चा करेंगे कि कैसे हम C++ STL में std::merge() फ़ंक्शन का उपयोग करके दो सॉर्टेड ऐरे को तेजी से मर्ज कर सकते हैं।
तो, समस्या को हल करने से पहले आइए पहले C++ STL में std::merge() पर चर्चा करें।
std::merge() क्या है?
std::merge() फ़ंक्शन C++ STL में एक अंतर्निहित फ़ंक्शन है, जिसे <algorithm> हेडर फ़ाइल में परिभाषित किया गया है। merge() का उपयोग दो सॉर्टेड रेंज या सीरीज को मर्ज करने के लिए किया जाता है। यह फ़ंक्शन दो सॉर्टेड रेंज को मिलाकर एक सिंगल सॉर्टेड रेंज बनाता है। सभी तत्वों की तुलना लेस दैन ऑपरेटर (<) का उपयोग करके की जाती है ताकि तीसरी रेंज भी अपने आप सॉर्ट हो जाए।
std::merge() का उपयोग करके दो सॉर्टेड ऐरे को तेजी से कैसे मर्ज करें?
हमें दो सॉर्टेड ऐरे दिए गए हैं जो arr1[] और arr2[] हैं और कार्य उन दो सॉर्टेड ऐरे को मर्ज करना है और इसे एक अन्य खाली ऐरे में स्टोर करना है जो arr3[] हो सकता है, merge() फ़ंक्शन का उपयोग करके जो C++ STL में उपलब्ध है।
सबसे पहले हम दोनों ऐरे का आकार arr[size_arr] और brr[size_brr] निकालेंगे और एक तीसरा ऐरे परिभाषित करेंगे जिसका आकार दोनों ऐरे के आकार का योग होगा final[size_arr+size_brr]।
फिर हम merge() फ़ंक्शन का उपयोग करके दो ऐरे को तीसरे ऐरे में मर्ज करेंगे जैसे merge(arr, (arr + size_arr), brr, (brr + size_brr), final);
उदाहरण
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {1, 2, 3};
int size_arr = sizeof(arr) / sizeof(arr[0]);
int brr[] = {4, 5, 6};
int size_brr = sizeof(brr) / sizeof(brr[0]);
int final[size_arr + size_brr];
merge(arr, (arr + size_arr), brr, (brr + size_brr), final);
cout << "तत्वों को मर्ज करने के बाद अंतिम ऐरे है: ";
for (int i = 0; i < (size_brr + size_arr); i++)
cout << final[i] << " ";
return 0;
}
आउटपुट
तत्वों को मर्ज करने के बाद अंतिम ऐरे है: 1 2 3 4 5 6