在C ++中按排序顺序合并两个未排序的数组。

问题陈述

编写一个函数,该函数接受两个未排序的数组,然后将它们按排序顺序合并为一个新数组。

arr1[] = {10, 5, 7, 2}

arr2[] = {4, 17, 9, 3}

result[] = {2, 3, 4, 5, 7, 9, 10, 17}

算法

1. Merge two unsorted array into new array

2. Sort newly create array

示例

#include <iostream>

#include <algorithm>

#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))

using namespace std;

void mergeAndSort(int *arr1, int n1, int *arr2, int n2, int *result){

   merge(arr1, arr1 + n1, arr2, arr2 + n2, result);

   sort(result, result + n1 + n2);

}

void displayArray(int *arr, int n){

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

      cout << arr[i] << " ";

   }

   cout << endl;

}

int main(){

   int arr1[] = {10, 5, 7, 2};

   int arr2[] = {4, 17, 9, 3};

   int result[SIZE(arr1) + SIZE(arr2)];

   cout << "First array: " << endl;

   displayArray(arr1, SIZE(arr1));

   cout << "Second array: " << endl;

   displayArray(arr1, SIZE(arr2));

   mergeAndSort(arr1, SIZE(arr1), arr2, SIZE(arr2), result);

   cout << "Merged and sorted array: " << endl;

   displayArray(result, SIZE(arr1) + SIZE(arr2));

   return 0;

}

输出结果

当您编译并执行上述程序时。它生成以下输出-

First array:

10 5 7 2

Second array:

10 5 7 2

Merged and sorted array:

2 3 4 5 7 9 10 17

以上是 在C ++中按排序顺序合并两个未排序的数组。 的全部内容, 来源链接: utcz.com/z/321878.html

回到顶部