21xrx.com
2024-06-02 23:38:52 Sunday
登录
文章检索 我的文章 写文章
C++实现有序数组合并排序
2023-07-07 12:49:59 深夜i     --     --
C++ 数组 合并 排序 有序

有序数组合并排序是一种常用的算法,它可以将两个有序的数组合并成一个有序的数组。在C++中,我们可以使用STL库中的merge函数来实现有序数组的合并排序。

merge函数的语法为:


template <class InputIterator1, class InputIterator2, class OutputIterator>

OutputIterator merge (InputIterator1 first1, InputIterator1 last1,

           InputIterator2 first2, InputIterator2 last2,

           OutputIterator result);

其中,first1和last1表示第一个有序数组的起始位置和结束位置;first2和last2表示第二个有序数组的起始位置和结束位置;result表示合并后的有序数组的起始位置。

下面是一个具体的例子,假设我们有两个有序数组arr1和arr2,我们要将它们合并成一个有序数组arr3。代码如下:


#include <algorithm>

#include <iostream>

using namespace std;

void merge(int arr1[], int m, int arr2[], int n, int arr3[]) {

  merge(arr1, arr1 + m, arr2, arr2 + n, arr3);

}

int main() {

  int arr1[] = 4;

  int arr2[] = 2;

  int m = sizeof(arr1) / sizeof(int);

  int n = sizeof(arr2) / sizeof(int);

  int arr3[m + n];

  merge(arr1, m, arr2, n, arr3);

  cout << "合并排序后的数组:";

  for (int i = 0; i < m + n; i++) {

    cout << arr3[i] << " ";

  }

  cout << endl;

  return 0;

}

在上面的例子中,我们定义了一个merge函数来进行数组合并。首先,我们需要计算出两个数组的长度m和n,然后定义一个大小为m+n的数组arr3来存储合并后的有序数组。

接着,我们调用STL库中的merge函数,将arr1和arr2合并成一个有序数组arr3。最后,我们打印出合并排序后的数组arr3。

使用C++的STL库的merge函数实现有序数组的合并排序非常简单方便。通过掌握这个函数的使用,我们可以更轻松地解决有序数组的合并排序问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复