इस लेख में, हम दो दिए गए अक्रमित सरणियों के मिलन और प्रतिच्छेदन को खोजने के लिए एक कार्यक्रम पर चर्चा करेंगे।
आइए हम दो सरणियों को 'ए' और 'बी' से निरूपित करें। फिर उन सरणियों के मिलन को 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