हमें पूर्णांक प्रकार के तत्वों की एक क्रमबद्ध सरणी दी गई है और संख्या मान लीजिए, संख्या और कार्य संख्या की गणना करना है कि दिए गए तत्व संख्या एक सरणी में कितनी बार दिखाई दे रही है ।
इनपुट - 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