在C ++ STL中使用std :: merge()快速合并两个排序的数组(cute ho ap)

在本文中,我们将讨论如何使用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