Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หา Union และ Intersection ของอาร์เรย์ที่ไม่ได้เรียง


หา Union (A ∪ B) และ Intersection (A ∩ B) ของอาร์เรย์สองอาร์เรย์ที่ไม่ได้เรียง

  • Union: รวมสมาชิกทั้งสองอาร์เรย์ ไม่ซ้ำ
  • Intersection: สมาชิกที่มีในทั้งสองอาร์เรย์

วิธี Union: คัดลอกอาร์เรย์แรก แล้ววนอาร์เรย์ที่สอง ถ้ายังไม่มีใน union ให้เพิ่ม
วิธี Intersection: วนอาร์เรย์แรก ตรวจสอบว่ามีในอาร์เรย์ที่สองหรือไม่ มีก็เพิ่มใน intersection

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

int main() {
    int len1 = 4, len2 = 3, flag1 = 0, flag2 = 0;
    int array1[len1] = {1,2,3,4}, array2[len2] = {5,3,4};
    int uni[len1+len2] = {1,2,3,4}, inter[len1];
    for(int k = 0; k < len2; k++) {
        flag1 = len1;
        for(int m = 0; m < len1; m++) {
            if(array2[k] == uni[m]) break;
            else if(m == len1-1) { uni[flag1] = array2[k]; flag1++; }
        }
    }
    for(int q = 0; q < len1; q++) {
        for(int w = 0; w < len2; w++) {
            if(array1[q] == array2[w]) { inter[flag2] = array1[q]; flag2++; break; }
        }
    }
    cout << "Union :" << endl;
    for(int u = 0; u < flag1; u++) cout << uni[u] << " ";
    cout << "\nIntersection :" << endl;
    for(int i = 0; i < flag2; i++) cout << inter[i] << " ";
    return 0;
}

ผลลัพธ์

Union : 1 2 3 4 5
Intersection : 3 4