Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

जाँच कीजिए कि क्या दिए गए दो समुच्चय असंयुक्त हैं?


दो समुच्चय असंयुक्त समुच्चय होते हैं, जब उनमें कोई उभयनिष्ठ अवयव न हो। दूसरे शब्दों में, यदि हमें दो समुच्चयों का प्रतिच्छेदन मिलता है, तो हमें शून्य समुच्चय प्राप्त होगा।

विधि सरल है, इस एल्गोरिथम में दो सेट दिए गए हैं। हम मानते हैं कि दोनों सेट पहले से ही सॉर्ट किए गए हैं, आइटम की तुलना दो सेटों के बीच की जाती है। जब कोई मिलान होता है, तो यह एक असंबद्ध सेट नहीं होता है, जब कोई आइटम मेल नहीं खाता है, तो वे संयुक्त सेट होते हैं।

इनपुट और आउटपुट

Input:
Two sets:
set1: {15, 12, 36, 21, 14}
set2: {7, 89, 56, 32}
Output:
Both sets are disjoint

एल्गोरिदम

isDisjoint(set1, set2)

इनपुट :दो सेट।

आउटपुट: सही है जब दोनों सेट अलग-अलग हों।

Begin
   i1 := start of first set
   i2 := start of second set
   while i1 in set1 and i2 in set 2, do
      if set1[i1] < set2[i2], then
         i1 := i1 + 1
      else if set2[i2] < set1[i1], then
         i2 := i2 + 1
      else
         return false
   done
   return true
End

उदाहरण

#include<iostream>
#include<set>
using namespace std;

bool isDisjoint(set<int> set1, set<int> set2) {
   set<int>::iterator i1, i2;
   i1 = set1.begin(); i2 = set2.begin();            //initialize iterators with first element
   while(i1 != set1.end() && i2 != set2.end()) {         //when both set have some elements to check
      if(*i1 < *i2)
         i1++;                   //when item of first set is less than second set
      else if(*i2 < *i1)
         i2++;               //when item of second set is less than first set
      else
         return false;            //if items are matched, sets are not disjoint
   }
   return true;

}

int main() {
   set<int> set1, set2;
   int n1, n2;
   cout << "Enter number of elements in set 1: "; cin >>n1;

   while(n1 != set1.size()) {       //duplicate items will be discarded
      int item;
      cout << "Enter element: "; cin >> item;
      set1.insert(item);
   }

   cout << "Enter number of elements in set 2: "; cin >>n2;
   while(n2 != set2.size()) {
      int item;
      cout << "Enter element: "; cin >> item;
      set2.insert(item);
   }

   if(isDisjoint(set1, set2))
      cout << "Both sets are disjoint";
   else
      cout << "Sets are not disjoint";
}

आउटपुट

Enter number of elements in set 1: 5
Enter element: 15
Enter element: 12
Enter element: 36
Enter element: 21
Enter element: 14
Enter number of elements in set 2: 4
Enter element: 7
Enter element: 89
Enter element: 56
Enter element: 32
Both sets are disjoint

  1. जांचें कि क्या दो सूचियां पायथन में समान हैं

    पायथन डेटा विश्लेषण में, हमें ऐसी स्थिति का सामना करना पड़ सकता है जब हमें दो सूचियों की तुलना करने और यह पता लगाने की आवश्यकता होती है कि क्या वे समान तत्वों वाले समान अर्थ हैं या नहीं। उदाहरण listA = ['Mon','Tue','Wed','Thu'] listB = ['Mon','Wed',

  1. पायथन प्रोग्राम यह जाँचने के लिए कि क्या दो सूचियाँ एक समान हैं

    यहां दो सूचियां दी गई हैं। हमारा काम मौसम की जांच करना और पता लगाना है कि दो दी गई सूचियां गोलाकार रूप से समान हैं या नहीं। उदाहरण Input : A = [100, 100, 10, 10, 100] B = [100, 100, 100, 10, 10] Output : True स्पष्टीकरण सच है कि जब सूची में ये तत्व गोलाकार रूप से घूमेंगे तो वे अन्य दी गई

  1. पायथन प्रोग्राम यह जांचने के लिए कि क्या दो दिए गए मैट्रिसेस समान हैं

    यहाँ दो मैट्रिक्स दिए गए हैं। दोनों मैट्रिक्स का एक ही क्रम है। समान रूप से दो मैट्रिक्स समान होने चाहिए, दोनों मैट्रिक्स में पंक्तियों और स्तंभों की संख्या समान होनी चाहिए और संबंधित तत्व भी समान होने चाहिए। एल्गोरिदम Step 1: Create two matrix. Step 2: Then traverse every element of the first matr