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