এই আর্টিকেলে আমরা আলোচনা করব কিভাবে C++ STL-এ std::merge() ফাংশন ব্যবহার করে দুটি সোর্টেড অ্যারে দ্রুত মার্জ করা যায়।
std::merge() কী?
std::merge() C++ STL-এ একটি বিল্ট-ইন ফাংশন যা <algorithm> হেডার ফাইলে সংজ্ঞায়িত। এটি দুটি সোর্টেড রেঞ্জ বা সিকোয়েন্স মার্জ করতে ব্যবহৃত হয়। এই ফাংশন দুটি সোর্টেড রেঞ্জ একত্রিত করে একটি একক সোর্টেড রেঞ্জ তৈরি করে। সব উপাদান লেস-দ্যান অপারেটর (<) দিয়ে তুলনা হয় তাই তৃতীয় রেঞ্জটিও স্বয়ংক্রিয়ভাবে সোর্টেড হয়।
std::merge() দিয়ে কীভাবে দ্রুত মার্জ করব
দুটি সোর্টেড অ্যারে arr1[] এবং arr2[] দেওয়া আছে। কাজ হলো সেগুলো মার্জ করে তৃতীয় খালি অ্যারে arr3[]-এ রাখা, merge() ফাংশন ব্যবহার করে।
প্রথমে দুটি অ্যারের সাইজ বের করুন: 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 << "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