C++程式:查詢兩個未排序陣列的並集和交集
在本文中,我們將討論一個查詢兩個給定未排序陣列的並集和交集的程式。
讓我們用‘A’和‘B’表示這兩個陣列。這兩個陣列的並集用A ∪ B表示,它基本上是兩個給定陣列中所有元素的陣列;前提是每個元素只出現一次。
為了找到它,我們將建立一個單獨的陣列並將第一個陣列中的所有元素複製到該陣列中。然後,我們將遍歷第二個陣列的元素,並檢查它是否已存在於並集陣列中。如果不存在,則將其新增到並集陣列中。
類似地,兩個陣列的交集用A ∩ B表示。它是一個包含存在於兩個給定陣列中的元素的陣列。
為此,我們將逐個遍歷第一個陣列的元素。同時,我們將檢查該元素是否存在於第二個陣列中。如果該元素同時存在於兩個陣列中,則將其新增到交集陣列中。
示例
#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++) {
//eliminating common elements among the given arrays
if(array2[k] == uni[m])
break;
else if(m == len1-1) {
uni[flag1] = array2[k];
flag1 = flag1+1;
}
}
}
for(int q = 0; q < len1; q++) {
for(int w = 0; w < len2; w++) {
//checking if both arrays contain a particular element
if(array1[q] == array2[w]) {
inter[flag2] = array1[q];
flag2 = flag2+1;
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 Intersection : 3 4
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP