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

सी ++ में सरणी तत्वों की आवृत्तियों की गणना करना


हमें पूर्णांक तत्वों की एक सरणी दी गई है जिसमें डुप्लिकेट मान शामिल हैं और कार्य एक सरणी में मौजूद अलग-अलग तत्वों की आवृत्तियों की गणना करना और परिणाम प्रिंट करना है।

इनपुट - int arr[] ={1, 1, 2, 3, 4, 1, 2, 3}

आउटपुट -

frequency of 1 is: 3
frequency of 2 is: 2
frequency of 3 is: 2
Frequency of 4 is: 1

इनपुट - int arr[] ={2, 3, 4, 1, 5}

आउटपुट -

frequency of 1 is: 1
frequency of 2 is: 1
frequency of 3 is: 1
Frequency of 4 is: 1
Frequency of 5 is: 1

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

इसके लिए कई समाधान हो सकते हैं और वे कोडिंग शब्दों में सरल या जटिलता के संदर्भ में सरल हो सकते हैं। तो आइए पहले कोडिंग शब्दों में सरल दृष्टिकोण को देखें

  • पूर्णांक प्रकार चर की एक सरणी बनाएं

  • size() फ़ंक्शन का उपयोग करके किसी सरणी के आकार की गणना करें।

  • एक बूलियन सरणी बनाएं मान लें, सरणी आकार की जांच करें

  • i से 0 तक के लिए लूप प्रारंभ करें और मैं आकार से छोटा हूं

  • लूप के अंदर, चेक सेट करें[i] =0

  • i से 0 तक के लिए लूप प्रारंभ करें और मैं आकार से छोटा हूं

  • लूप के अंदर, IF check[i] =1 चेक करें और फिर जारी रखें

  • वैरिएबल काउंट घोषित करें और इसे 1 से इनिशियलाइज़ करें जो फ़्रीक्वेंसी काउंट को प्रिंट करेगा

  • i+1 से आकार तक j के लिए लूप प्रारंभ करें

  • लूप के अंदर, जांचें कि क्या arr[i] =arr[j] फिर check[j] को 1 पर सेट करें और गिनती को 1 तक बढ़ाएं

  • गिनती का मान प्रिंट करें।

इसका एक अन्य समाधान हो सकता है -

  • पूर्णांक प्रकार चर की एक सरणी बनाएं

  • size() फ़ंक्शन का उपयोग करके किसी सरणी के आकार की गणना करें।

  • unordered_map प्रकार का एक वैरिएबल बनाएं मान लें कि um

  • I से 0 तक और आकार तक के लिए लूप प्रारंभ करें

  • लूप के अंदर, um[arr[i]]++

    . सेट करें
  • ऑटो x से um तक के लिए एक और लूप प्रारंभ करें

  • लूप के अंदर, फ़्रीक्वेंसी प्रिंट करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int frequency(int arr[], int size){
   bool check[size];
   for(int i=0;i<size;i++){
      check[i] = 0;
   }
   for(int i=0; i<size; i++){
      if(check[i]== 1){
         continue;
      }
      int count = 1;
      for(int j = i+1; j<size; j++){
         if (arr[i] == arr[j]){
            check[j] = 1;
            count++;
         }
      }
      cout<<"frequency of "<<arr[i]<<" is: " << count << endl;
   }
}
int main(){
   int arr[] = {1, 2, 3, 1, 2, 3};
   //calculate the size of an array
   int size = sizeof(arr) / sizeof(arr[0]);
   //call function to calculate the frequency
   frequency(arr, size);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

frequency of 1 is: 2
frequency of 2 is: 2
frequency of 3 is: 2

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void frequency(int arr[], int size){
   unordered_map<int, int< um;
   for (int i = 0; i < size; i++){
      um[arr[i]]++;
   }
   for (auto x : um){
      cout<<"frequency of "<<x.first<<" is: "<< x.second<< endl;
   }
}
int main(){
   int arr[] = {1, 2, 3, 1, 2, 3 };
   int size = sizeof(arr) / sizeof(arr[0]);
   frequency(arr, size);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

frequency of 3 is: 2
frequency of 1 is: 2
frequency of 2 is: 2

  1. सरणी तत्वों के गुणन के लिए C++ प्रोग्राम

    पूर्णांक तत्वों की एक सरणी के साथ दिया गया और कार्य एक सरणी के तत्वों को गुणा करना और इसे प्रदर्शित करना है। उदाहरण Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए कार्यक्रम में उपयोग क

  1. C++ प्रोग्राम काउंटिंग सॉर्ट को लागू करने के लिए

    काउंटिंग सॉर्ट एक स्थिर छँटाई तकनीक है, जिसका उपयोग वस्तुओं को छोटी संख्याओं की कुंजियों के अनुसार क्रमबद्ध करने के लिए किया जाता है। यह उन कुंजियों की संख्या की गणना करता है जिनके प्रमुख मान समान हैं। यह छँटाई तकनीक कुशल है जब विभिन्न कुंजियों के बीच का अंतर इतना बड़ा नहीं है, अन्यथा यह स्थान की जट

  1. सी ++ प्रोग्राम पॉइंटर का उपयोग करके एक ऐरे के तत्वों तक पहुंचने के लिए

    पॉइंटर्स मेमोरी लोकेशन या वेरिएबल्स के एड्रेस को स्टोर करते हैं। दूसरे शब्दों में, पॉइंटर्स एक मेमोरी लोकेशन को रेफर करते हैं और उस मेमोरी लोकेशन पर स्टोर किए गए वैल्यू को प्राप्त करना पॉइंटर को डीरेफ्रेंसिंग के रूप में जाना जाता है। एक प्रोग्राम जो किसी सरणी के एक तत्व तक पहुँचने के लिए पॉइंटर्स क