কম্পিউটার টিউটোরিয়াল

দুটি সেট ডিজয়েন্ট কিনা (Check if two given sets are disjoint?)


দুটি সেট ডিজয়েন্ট সেট হয় যখন তাদের কোনো সাধারণ উপাদান নেই। অন্য কথায়, যদি দুটি সেটের ইন্টারসেকশন নিই, তবে নাল সেট পাওয়া যাবে।

পদ্ধতিটি সহজ, এই অ্যালগরিদমে দুটি সেট দেওয়া থাকে। আমরা অনুমান করি দুটি সেটই ইতিমধ্যে সর্ট করা আছে, আইটেমগুলো দুটি সেটের মধ্যে তুলনা করা হয়। যখন মিল পাওয়া যায়, তবে সেটি ডিজয়েন্ট সেট নয়, যখন কোনো আইটেম মিলে না, তবে তারা ডিজয়েন্ট সেট।

ইনপুট এবং আউটপুট

ইনপুট: দুটি সেট: set1: {15, 12, 36, 21, 14} set2: {7, 89, 56, 32} আউটপুট: উভয় সেট ডিজয়েন্ট

অ্যালগরিদম

isDisjoint(set1, set2)

ইনপুট: দুটি সেট।

আউটপুট: সত্য যখন উভয় সেট ডিজয়েন্ট।

শুরু 
  i1 := প্রথম সেটের শুরু 
  i2 := দ্বিতীয় সেটের শুরু 
  যতক্ষণ i1 প্রথম সেটে এবং i2 দ্বিতীয় সেটে থাকে, করুন 
    যদি set1[i1] < set2[i2], তবে 
      i1 := i1 + 1 
    অন্যথায় যদি set2[i2] < set1[i1], তবে 
      i2 := i2 + 1 
    অন্যথায় 
      মিথ্যা ফেরত দিন 
  শেষ 
  সত্য ফেরত দিন 
শেষ

উদাহরণ

#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();       //ইটেরেটরগুলো প্রথম এলিমেন্ট দিয়ে ইনিশিয়ালাইজ করুন   while(i1 != set1.end() && i2 != set2.end()) {     //যখন দুটি সেটই চেক করার জন্য কিছু এলিমেন্ট রাখে     if(*i1 < *i2)       i++;       //যখন প্রথম সেটের আইটেম দ্বিতীয় সেটের চেয়ে কম     else if(*i2 < *i1)       i2++;       //যখন দ্বিতীয় সেটের আইটেম প্রথম সেটের চেয়ে কম     else       return false;       //যদি আইটেমগুলো মিলে যায়, সেটগুলো ডিজয়েন্ট নয়   }   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()) {     //ডুপ্লিকেট আইটেম বাদ পড়বে     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. Python-এ দুটি স্ট্রিং সমতুল্য কিনা প্রদত্ত শর্ত অনুযায়ী যাচাই করা

  2. পাইথনে দুটি লিস্ট একই কিনা যাচাই

  3. পাইথন প্রোগ্রাম: দুটি লিস্ট সার্কুলারলি ইডেন্টিক্যাল কিনা চেক করা

  4. পাইথন প্রোগ্রাম: দুটি ম্যাট্রিক্স ইডেন্টিক্যাল কিনা চেক করা