আমাদেরকে পুনরাবৃত্তিমূলক উপাদান ধারণ করে যেকোন আকারের একটি সাজানো বিন্যাস দেওয়া হয়েছে এবং কাজটি হল একটি অ্যারের মধ্যে স্বতন্ত্র উপাদানগুলির গণনা করা।
এক ধরণের ডেটা স্ট্রাকচার অ্যারে করে যা একই ধরণের উপাদানগুলির একটি নির্দিষ্ট-আকারের অনুক্রমিক সংগ্রহ সঞ্চয় করতে পারে। একটি অ্যারে ডেটা সংগ্রহের জন্য ব্যবহার করা হয়, তবে একই ধরণের ভেরিয়েবলের সংগ্রহ হিসাবে একটি অ্যারেকে ভাবতে প্রায়ই এটি বেশি কার্যকর।
উদাহরণস্বরূপ
Input− int arr[] = {1, 1, 2, 3, 3, 4, 4} Output − count is 4
ব্যাখ্যা − প্রদত্ত অ্যারেতে 4টি স্বতন্ত্র উপাদান রয়েছে এবং সেগুলি হল 1, 2, 3, 4 কিন্তু অ্যারের আকার হল 7 কারণ এতে পুনরাবৃত্তিমূলক উপাদান রয়েছে এবং আমাদের কাজ ছিল সদৃশগুলি সরানো এবং তারপর অ্যারের উপাদানগুলি গণনা করা৷
Input − int arr[] = {1, 2, 3, 4, 5, 5, 5, 5} Output − count is 5
ব্যাখ্যা − প্রদত্ত অ্যারেতে 5টি স্বতন্ত্র উপাদান রয়েছে এবং সেগুলি হল 1, 2, 3, 4 এবং 5 তবে অ্যারের আকার 8 কারণ এতে পুনরাবৃত্তিমূলক উপাদান রয়েছে এবং আমাদের কাজ ছিল সদৃশগুলি সরিয়ে তারপর অ্যারের উপাদানগুলি গণনা করা৷
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
সর্ট ফাংশন ব্যবহার করে()
-
একটি অ্যারে তৈরি করুন, আসুন আমরা বলি, আরে[>
-
length() ফাংশন ব্যবহার করে একটি অ্যারের দৈর্ঘ্য গণনা করুন যা একটি অ্যারের উপাদান অনুযায়ী পূর্ণসংখ্যার মান প্রদান করবে।
-
সাজানোর ফাংশনটিকে কল করুন এবং প্যারামিটার হিসাবে অ্যারে এবং অ্যারের আকার পাস করুন৷
-
একটি অস্থায়ী পরিবর্তনশীল নিন যা স্বতন্ত্র উপাদানের গণনা সংরক্ষণ করবে।
-
i থেকে 0 এর জন্য একটি লুপ শুরু করুন যতক্ষণ না i একটি অ্যারের আকারের চেয়ে কম হয়
-
লুপের ভিতরে, i
চলাকালীন চালান -
সময়ের ভিতরে, i
এর মান বৃদ্ধি করুন -
এবং ভিতরে, গণনার মান বৃদ্ধি করুন
-
রিটার্ন গণনা
-
ফলাফল প্রিন্ট করুন।
বাছাই ছাড়াই
-
একটি অ্যারে তৈরি করুন, আসুন আমরা বলি, আরে[>
-
length() ফাংশন ব্যবহার করে একটি অ্যারের দৈর্ঘ্য গণনা করুন যা একটি অ্যারের উপাদান অনুযায়ী পূর্ণসংখ্যার মান প্রদান করবে।
-
একটি অস্থায়ী পরিবর্তনশীল নিন যা স্বতন্ত্র উপাদানের গণনা সংরক্ষণ করবে।
-
i থেকে 1 এর জন্য একটি লুপ শুরু করুন যতক্ষণ না i একটি অ্যারের আকারের চেয়ে কম হয়
-
লুপের ভিতরে, j তে 0 সেট করুন এবং j থেকে 0 এবং j lessthan i এবং j wth 1 বৃদ্ধির জন্য আরেকটি লুপ শুরু করুন
-
এই লুপের ভিতরে, পরীক্ষা করুন যদি arr[i] =arr[j] তারপর break
-
এই লুপের ভিতরে, পরীক্ষা করুন যদি i =j তারপর গণনা 1 দ্বারা বৃদ্ধি করুন
-
রিটার্ন গণনা
-
ফলাফল প্রিন্ট করুন
উদাহরণ
বাছাই সহ
#include <algorithm> #include <iostream> using namespace std; int distinct_elements(int arr[], int n){ // Sorting the array sort(arr, arr + n); // Traverse the sorted array int count = 0; for (int i = 0; i < n; i++){ // Moving the index when duplicate is found while (i < n - 1 && arr[i] == arr[i + 1]){ i++; } count++; } return count; } // Main Function int main(){ int arr[] = { 3, 6, 5, 8, 2, 3, 4 }; int n = sizeof(arr) / sizeof(arr[0]); cout <<"count is "<<distinct_elements(arr, n); return 0; }
আউটপুট
আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −
count is 6
উদাহরণ
বাছাই ছাড়াই
#include <iostream> using namespace std; int countDistinct(int a[], int size){ int i, j, count = 1; for (i = 1; i < size; i++){ for (j = 0; j < i; j++){ if (a[i] == a[j]){ break; } } if (i == j){ count++; } } return count; } // Main function int main(){ int a[] = { 3, 6, 5, 8, 2, 3, 4 }; int size = sizeof(a) / sizeof(a[0]); cout << "count is "<<countDistinct(a, size); return 0; }
আউটপুট
আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −
count is 6