Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm Union và Intersection của hai mảng không được sắp xếp trong C ++

Trong hướng dẫn này, chúng ta sẽ học cách viết một chương trình cho phép kết hợp và phần giao nhau của hai mảng không được sắp xếp. Hãy xem một ví dụ.

Đầu vào

arr_one = [1, 2, 3, 4, 5]
arr_two = [3, 4, 5, 6, 7]

Đầu ra

union: 1 2 3 4 5 6 7
intersection: 3 4 5

Hãy xem các bước để giải quyết vấn đề.

Công đoàn

  • Khởi tạo hai mảng với các giá trị ngẫu nhiên.

  • Tạo một mảng trống có tên union_result.

  • Lặp lại mảng đầu tiên và thêm mọi phần tử vào đó.

  • Lặp lại mảng phần và thêm phần tử nếu nó không có trong mảng union_result.

  • In mảng union_result.

Giao lộ

  • Khởi tạo hai mảng với các giá trị ngẫu nhiên.

  • Tạo một mảng trống có tên là giao_thông.

  • Lặp lại mảng đầu tiên và thêm phần tử nếu nó có trong mảng thứ hai.

  • In mảng giao_thông.

Ví dụ

Xem mã bên dưới

#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) {
   // union
   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;
   // intersection
   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;
}

Đầu ra

Nếu bạn thực hiện chương trình trên, bạn sẽ nhận được kết quả sau.

Union: 1 2 3 4 5 6 7
Intersection: 1 2 3 4 5

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.