Trong bài viết này, chúng ta sẽ thảo luận về cách chúng ta có thể nhanh chóng hợp nhất hai mảng đã sắp xếp bằng cách sử dụng hàm std ::merge () trong C ++ STL.
Vì vậy, trước khi giải quyết vấn đề, trước tiên hãy thảo luận về std ::merge () trong C ++ STL.
std ::merge () là gì?
Hàm std ::merge () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề
Làm thế nào chúng ta sẽ nhanh chóng hợp nhất hai mảng đã sắp xếp bằng cách sử dụng std ::merge ()?
Chúng ta được cung cấp hai mảng đã sắp xếp là arr1 [] và arr2 [] và nhiệm vụ là hợp nhất hai mảng đã sắp xếp đó và lưu trữ nó trong một mảng trống khác có thể là arr3 [], sử dụng hàm merge () có sẵn trong C ++ STL .
-
Đầu tiên, chúng tôi sẽ tính toán kích thước của cả hai mảng arr [size_arr] và brr [size_brr] và xác định mảng thứ ba có kích thước là tổng kích thước của cả hai mảng cuối cùng [size_arr + size_brr].
-
Sau đó, chúng tôi sẽ hợp nhất hai mảng thành mảng thứ ba bằng cách sử dụng hàm merge () như merge (arr, (arr + size_arr), brr, (brr + size_brr), final);
Ví dụ
#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;
} Đầu ra
Final array after merging the elements is: 1 2 3 4 5 6