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

सी ++ में क्रमबद्ध सरणी में घटनाओं (या आवृत्ति) की संख्या की गणना करें


हमें पूर्णांक प्रकार के तत्वों की एक क्रमबद्ध सरणी दी गई है और संख्या मान लीजिए, संख्या और कार्य संख्या की गणना करना है कि दिए गए तत्व संख्या एक सरणी में कितनी बार दिखाई दे रही है ।

इनपुट - int arr[] ={1, 1, 1,2, 3, 4}, संख्या =1

आउटपुट − क्रमबद्ध सरणी में होने वाली घटनाओं (या आवृत्ति) की संख्या है − 3

इनपुट - int arr[] ={2, 3, 4, 5, 5, 6, -7}, अंक =5

आउटपुट − क्रमबद्ध सरणी में होने वाली घटनाओं (या आवृत्ति) की संख्या है − 2

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

आउटपुट − क्रमबद्ध सरणी में होने वाली घटनाओं (या आवृत्ति) की संख्या है − 0

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

उपरोक्त समस्या को हल करने के लिए कई दृष्टिकोण अपनाए जा सकते हैं।

निष्पक्ष दृष्टिकोण

  • पूर्णांक तत्वों की एक सरणी घोषित करें जिसमें सकारात्मक और नकारात्मक दोनों संख्याएं हों और एक पूर्णांक चर संख्या जिसमें से हमें एक सरणी में आवृत्ति का पता लगाना है।

  • किसी सरणी के आकार की गणना करें और आगे की प्रक्रिया के लिए सभी डेटा को फ़ंक्शन में पास करें।

  • चर संख्या कितनी बार दिखाई दे रही है, इसकी संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना घोषित करें

  • एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें

  • लूप के अंदर, IF num =arr[i] चेक करें, फिर गिनती के मान को 1 से बढ़ाएँ

  • गिनती लौटाएं

  • परिणाम प्रिंट करें।

कुशल दृष्टिकोण

  • पूर्णांक तत्वों की एक सरणी घोषित करें जिसमें सकारात्मक और नकारात्मक दोनों संख्याएं हों और एक पूर्णांक चर संख्या जिसमें से हमें एक सरणी में आवृत्ति का पता लगाना है।

  • किसी सरणी के आकार की गणना करें और आगे की प्रक्रिया के लिए सभी डेटा को फ़ंक्शन में पास करें।

  • चर संख्या कितनी बार दिखाई दे रही है, इसकी संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना घोषित करें

  • एक पॉइंटर को पहले लोअर_बाउंड (arr, arr+size, num) के रूप में सेट करें

  • पहले जांचें IF =(गिरफ्तारी + आकार) || (*पहले !=num) फिर वापस 0

  • एंड पॉइंटर को अपर_बाउंड के रूप में सेट करें (प्रथम, एआर + आकार, संख्या)

  • गिनती को अंतिम के रूप में सेट करें - पहले

  • वापसी की संख्या

  • प्रिंट परिणाम

उदाहरण (बेवकूफ दृष्टिकोण)

#include <iostream>
using namespace std;
int frequency_count(int arr[], int num, int size){
   int count = 0;
   for(int i=0; i<size; i++){
      if(num==arr[i]){
         count++;
      }
   }
   return count;
}
int main(){
   int arr[] = {1, 1, 1,2, 3, 4};
   int num = 1;
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of number of occurrences (or frequency) in a sorted array are: "<<frequency_count(arr, num, size);
   return 0;
}

आउटपुट

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

Count of number of occurrences (or frequency) in a sorted array are: 3

उदाहरण (कुशल दृष्टिकोण)

# include <bits/stdc++.h>
using namespace std;
int frequency_count(int arr[], int num, int size){
   int *first = lower_bound(arr, arr+size, num);
   if (first == (arr + size) || *first != num){
      cout<<"The Element is not present in an array ";
      return 0;
   }
   int count = 0;
   int *last = upper_bound(first, arr+size, num);
   count = last - first;
   return count;
}
int main(){
   int arr[] = {1, 1, 1, 2, 3, 4};
   int num = 1;
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of number of occurrences (or frequency) in a sorted array are: "<<frequency_count(arr, num, size);
   return 0;
}

आउटपुट

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

Count of number of occurrences (or frequency) in a sorted array are: 3

  1. सी ++ में घुमाए गए क्रमबद्ध सरणी में घूर्णन गणना खोजें

    विचार करें कि हमारे पास एक सरणी है, जो क्रमबद्ध सरणी घुमाई गई है। हमें सरणी को सॉर्ट करने के लिए आवश्यक घुमावों की संख्या का पता लगाना होगा। (हम दाएं से बाएं घुमाने पर विचार करेंगे।) मान लीजिए कि सरणी इस प्रकार है:{15, 17, 1, 2, 6, 11}, तो हमें सरणी को क्रमबद्ध करने के लिए दो बार घुमाना होगा। अंतिम

  1. सी ++ में एक क्रमबद्ध सरणी में पूर्ण विशिष्ट गणना?

    एक सरणी एक ही डेटा प्रकार के तत्वों का एक संग्रह है। एक क्रमबद्ध सरणी एक सरणी है जिसमें तत्वों को आरोही या अवरोही क्रम में संग्रहीत किया जाता है। विशिष्ट गणना उन तत्वों की संख्या है जो समान नहीं हैं। एब्सोल्यूट डिफरेंट काउंट तत्वों के निरपेक्ष मान की अलग गिनती है यानी बिना चिह्न वाले तत्व (अहस्ताक

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

    काउंट इनवर्जन का अर्थ है किसी सरणी को सॉर्ट करने के लिए आवश्यक स्विच की संख्या। उलटा गिनती =0, जब सरणी को क्रमबद्ध किया जाता है। उलटा गिनती =अधिकतम, जब सरणी को उल्टे क्रम में क्रमबद्ध किया जाता है। आइए एक सरणी में उलटा गिनने के लिए एक C++ प्रोग्राम विकसित करें। एल्गोरिदम Begin    Function