हमें दोहराए जाने वाले तत्वों वाले किसी भी आकार की एक क्रमबद्ध सरणी दी जाती है और कार्य एक सरणी में अलग-अलग तत्वों की गिनती की गणना करना है।
एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के संग्रह को संग्रहीत करने के लिए एक सरणी का उपयोग किया जाता है, लेकिन एक सरणी को उसी प्रकार के चर के संग्रह के रूप में सोचना अक्सर अधिक उपयोगी होता है।
उदाहरण के लिए
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 है क्योंकि इसमें दोहराव वाले तत्व होते हैं और हमारा काम डुप्लिकेट को हटाना और फिर सरणी तत्वों की गणना करना था।पी>
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
सॉर्ट फ़ंक्शन का उपयोग करना ()
-
मान लीजिए की एक सरणी बनाएं, arr[]
-
लंबाई () फ़ंक्शन का उपयोग करके एक सरणी की लंबाई की गणना करें जो एक सरणी में तत्वों के अनुसार एक पूर्णांक मान लौटाएगा।
-
सॉर्ट फ़ंक्शन को कॉल करें और सरणी और सरणी के आकार को पैरामीटर के रूप में पास करें।
-
एक अस्थायी चर लें जो अलग-अलग तत्वों की संख्या को संग्रहीत करेगा।
-
i से 0 के लिए एक लूप प्रारंभ करें जब तक कि i किसी सरणी के आकार से छोटा न हो
-
लूप के अंदर, i
के दौरान दौड़ें -
थोड़ी देर के अंदर, i
. का मान बढ़ाएँ -
और अंदर के लिए, गिनती का मान बढ़ाएँ
-
वापसी की संख्या
-
परिणाम प्रिंट करें।
बिना छांटे
-
मान लीजिए की एक सरणी बनाएं, arr[]
-
लंबाई () फ़ंक्शन का उपयोग करके एक सरणी की लंबाई की गणना करें जो एक सरणी में तत्वों के अनुसार एक पूर्णांक मान लौटाएगा।
-
एक अस्थायी चर लें जो अलग-अलग तत्वों की संख्या को संग्रहीत करेगा।
-
i से 1 के लिए लूप प्रारंभ करें जब तक कि i किसी सरणी के आकार से छोटा न हो
-
लूप के अंदर, j से 0 पर सेट करें और j से 0 और j कम से i और इंक्रीमेंट j wth 1
के साथ एक और लूप शुरू करें -
इस लूप के अंदर, जांचें कि क्या arr[i] =arr[j] फिर टूट जाता है
-
इस लूप के अंदर, जांचें कि क्या i =j फिर गिनती को 1 से बढ़ा दें
-
वापसी की संख्या
-
परिणाम प्रिंट करें.r
उदाहरण
सॉर्टिंग के साथ
#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