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

C++ में सॉर्ट की गई सरणी में घटनाओं की गणना


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

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

आउटपुट - सॉर्ट की गई सरणी में घटनाओं (या आवृत्ति) की संख्या - 3

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

आउटपुट - सॉर्ट की गई सरणी में घटनाओं (या आवृत्ति) की संख्या - 2

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

आउटपुट - सॉर्ट की गई सरणी में घटनाओं (या आवृत्ति) की संख्या - 0

उपयोग किया गया दृष्टिकोण

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

सामान्य दृष्टिकोण

  • सकारात्मक और नकारात्मक संख्याओं वाले पूर्णांक तत्वों की एक सरणी घोषित करें और एक पूर्णांक चर num जिसकी आवृत्ति हमें सरणी में ज्ञात करनी है।
  • सरणी का आकार गणना करें और आगे की प्रक्रिया के लिए सभी डेटा को फ़ंक्शन में पास करें।
  • चर num के प्रकट होने की संख्या संग्रहीत करने के लिए एक अस्थायी चर count घोषित करें
  • i से 0 से सरणी के आकार तक लूप FOR शुरू करें
  • लूप के अंदर, जांचें IF num = arr[i] तो count के मान को 1 से बढ़ाएं
  • count लौटाएं
  • परिणाम प्रिंट करें।

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

  • सकारात्मक और नकारात्मक संख्याओं वाले पूर्णांक तत्वों की एक सरणी घोषित करें और एक पूर्णांक चर num जिसकी आवृत्ति हमें सरणी में ज्ञात करनी है।
  • सरणी का आकार गणना करें और आगे की प्रक्रिया के लिए सभी डेटा को फ़ंक्शन में पास करें।
  • चर num के प्रकट होने की संख्या संग्रहीत करने के लिए एक अस्थायी चर count घोषित करें
  • पॉइंटर first को lower_bound(arr, arr+size, num) के रूप में सेट करें
  • जांचें IF first = (arr + size) || (*first != num) तो 0 लौटाएं
  • अंत पॉइंटर को upper_bound(first, arr+size, num) के रूप में सेट करें
  • count को last - first के रूप में सेट करें
  • count लौटाएं
  • परिणाम प्रिंट करें

उदाहरण (सामान्य दृष्टिकोण)

#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. - C++ में रोटेटेड सॉर्टेड सरणी में रोटेशन काउंट ढूंढना

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

  1. - C++ में सॉर्टेड एरे में निरपेक्ष विशिष्ट गिनती

    एक एरे समान डेटा प्रकार के तत्वों का एक संग्रह है। एक सॉर्टेड एरे एक एरे है जिसमें तत्व आरोही या अवरोही क्रम के अनुक्रम में संग्रहीत होते हैं। विशिष्ट गिनती उन तत्वों की संख्या है जो समान नहीं हैं। निरपेक्ष विशिष्ट गिनती तत्वों के निरपेक्ष मान की विशिष्ट गिनती है यानी चिह्न के बिना मान (अनसाइन्ड मा

  1. - C++ प्रोग्राम: सरणी में इनवर्जन गिनें

    परिचयइनवर्जन काउंट का अर्थ है सरणी को सॉर्ट करने के लिए आवश्यक स्वैप की संख्या। यदि सरणी सॉर्टेड है तो इनवर्जन काउंट = 0। यदि सरणी रिवर्स ऑर्डर में सॉर्टेड है तो इनवर्जन काउंट = अधिकतम।एल्गोरिदम a[j] तो काउंट 1 बढ़ाएं। अंत में काउंट लौटाएं।उदाहरण कोड#include <iostream> using namespace std; in