Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ एसटीएल (प्यारा हो एपी) में std ::मर्ज () का उपयोग करके दो सॉर्ट किए गए सरणी को त्वरित रूप से विलय करना

इस लेख में हम चर्चा करेंगे कि कैसे हम C++ STL में std::merge() फ़ंक्शन का उपयोग करके दो सॉर्ट किए गए सरणियों को जल्दी से मर्ज कर सकते हैं।

इसलिए, समस्या को हल करने से पहले, आइए पहले C++ STL में std::merge() पर चर्चा करें।

std::merge() क्या है?

std::merge() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जिसे हेडर फाइल में परिभाषित किया गया है। मर्ज () का उपयोग दो क्रमबद्ध श्रेणियों या श्रृंखलाओं को मर्ज करने के लिए किया जाता है। यह फ़ंक्शन एक एकल सॉर्ट की गई श्रेणी बनाने के लिए दो सॉर्ट की गई श्रेणियों को जोड़ता है। सभी तत्वों की तुलना ऑपरेटर (<) से कम का उपयोग करके की जाती है, इसलिए तीसरी श्रेणी को भी अपने आप क्रमबद्ध किया जाता है।

कैसे हम std::merge() का उपयोग करके दो सॉर्ट किए गए सरणियों को जल्दी से मर्ज करेंगे?

हमें दो क्रमबद्ध सरणियाँ दी गई हैं जो arr1 [] और arr2 [] हैं और कार्य उन दो क्रमबद्ध सरणियों को मर्ज करना है और इसे एक अन्य खाली सरणी में संग्रहीत करना है जो arr3 [] हो सकता है, फ़ंक्शन मर्ज () का उपयोग करके C ++ STL में उपलब्ध है। ।

  • पहले हम arr[size_arr] और brr[size_brr] दोनों सरणियों के आकार की गणना करेंगे और एक तीसरे सरणी को परिभाषित करेंगे जिसका आकार दोनों सरणियों के आकार का योग है final[size_arr+size_brr]।

  • फिर हम मर्ज (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<<"Final array after merging the elements is: ";
   for (int i = 0; i < (size_brr + size_arr); i++)
      cout << final[i] << " ";
   return 0;
}

आउटपुट

Final array after merging the elements is: 1 2 3 4 5 6

  1. सी # में दो क्रमबद्ध सरणी मर्ज करें

    दो सॉर्ट किए गए सरणियों को मर्ज करने के लिए, पहले दो क्रमबद्ध सरणियों को सेट करें - int[] array1 = { 1, 2 }; int[] array2 = { 3, 4 }; अब, इसे एक सूची में जोड़ें और मर्ज करें - var list = new List<int>(); for (int i = 0; i < array1.Length; i++) {    list.Add(array1[i]);   &nb

  1. सी # का उपयोग कर एक सूची में दो क्रमबद्ध सरणी मर्ज करें

    दो क्रमबद्ध सरणियों को एक सूची में मिलाने के लिए, पहले दो क्रमबद्ध सरणियाँ सेट करें - int[] array1 = { 1, 2 }; int[] array2 = { 3, 4 }; इसे एक सूची में जोड़ें और मर्ज करें - var list = new List<int>(); for (int i = 0; i < array1.Length; i++) {    list.Add(array1[i]);    

  1. हेपैक का उपयोग करके पायथन में दो क्रमबद्ध सरणियों को मिलाएं?

    इस खंड में हम देखेंगे कि पायथन में हेपैक मॉड्यूल का उपयोग करके दो क्रमबद्ध सूचियों को कैसे मर्ज किया जा सकता है। एक उदाहरण के रूप में, यदि सूची 1 =[10, 20, 30, 40] और सूची 2 =[100, 200, 300, 400, 500], तो विलय के बाद यह सूची 3 =[10, 20, 30, 40, 100,] लौटाएगा। 200, 300, 400, 500] इस कार्य को करने के