在 C++ STL 中使用 std::merge() 快速合併兩個已排序陣列
在本文中,我們將討論如何使用 C++ STL 中的 std::merge() 函式快速合併兩個已排序陣列。
因此,在解決問題之前,讓我們首先討論 C++ STL 中的 std::merge()。
什麼是 std::merge()?
std::merge() 函式是 C++ STL 中的一個內建函式,它在 <algorithm> 標頭檔案中定義。merge() 用於合併兩個已排序範圍或序列。此函式將兩個已排序範圍組合為一個單一已排序範圍。所有元素都使用小於運算子 (<) 進行比較,因此第三個範圍也是按自身進行排序。
我們將如何使用 std::merge() 快速合併兩個已排序陣列?
給定兩個已排序陣列 arr1[] 和 arr2[],任務是使用 C++ STL 中提供的 merge() 函式合併這兩個已排序陣列,並將其儲存在另一個空陣列(即 arr3[])中。
首先,我們將計算兩個陣列 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP