在C ++中找到两个未排序数组的并集和交集

在本教程中,我们将学习如何编写两个未排序数组的并集和交集的程序。让我们来看一个例子。

输入 

arr_one = [1, 2, 3, 4, 5]

arr_two = [3, 4, 5, 6, 7]

输出 

union: 1 2 3 4 5 6 7

intersection: 3 4 5

让我们看看解决问题的步骤。

并集

  • 用随机值初始化两个数组。

  • 创建一个名为union_result的空数组。

  • 遍历第一个数组并将每个元素添加到其中。

  • 遍历section数组,如果union_result数组中不存在该元素,则添加该元素。

  • 打印union_result数组。

交集

  • 用随机值初始化两个数组。

  • 创建一个名为交集_结果的空数组。

  • 遍历第一个数组,并添加元素(如果第二个数组中存在)。

  • 打印交集_结果数组。

示例

见下面的代码

#include <bits/stdc++.h>

using namespace std;

int isElementPresentInArray(int arr[], int arr_length, int element) {

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

      if (arr[i] == element) {

         return true;

      }

   }

   return false;

}

void findUnionAndIntersection(int arr_one[], int arr_one_length, int arr_two[], int arr_two_length) {

   //并集

   int union_result[arr_one_length + arr_two_length] = {};

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

      union_result[i] = arr_one[i];

   }

   int union_index = arr_one_length;

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

      if (!isElementPresentInArray(arr_one, arr_one_length, arr_two[i])) {

         union_result[union_index++] = arr_two[i];

      }

   }

   cout << "Union: ";

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

      cout << union_result[i] << " ";

   }

   cout << endl;

   //交集

   int intersection_result[arr_one_length + arr_two_length] = {};

   int intersection_index = 0;

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

      if (isElementPresentInArray(arr_two, arr_two_length, arr_two[i])) {

         intersection_result[intersection_index++] = arr_one[i];

      }

   }

   cout << "Intersection: ";

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

      cout << intersection_result[i] << " ";

   }

   cout << endl;

}

int main() {

   int arr_one[] = {1, 2, 3, 4, 5};

   int arr_two[] = {3, 4, 5, 6, 7};

   findUnionAndIntersection(arr_one, 5, arr_two, 5);

   return 0;

}

输出结果

如果执行上述程序,则将得到以下结果。

Union: 1 2 3 4 5 6 7

Intersection: 1 2 3 4 5

以上是 在C ++中找到两个未排序数组的并集和交集 的全部内容, 来源链接: utcz.com/z/330634.html

回到顶部