Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Modusfunktion in C++

Detaillierte Erläuterung der Modusfunktion in C++

WBOY
WBOYOriginal
2023-11-18 15:08:231658Durchsuche

Detaillierte Erläuterung der Modusfunktion in C++

Detaillierte Erläuterung der Modusfunktion in C++

In der Statistik bezieht sich der Modus auf den Wert, der in einem Datensatz am häufigsten vorkommt. In der Sprache C++ können wir den Modus in jedem Datensatz finden, indem wir eine Modusfunktion schreiben.

Die Modusfunktion kann auf viele verschiedene Arten implementiert werden. Zwei der häufig verwendeten Methoden werden im Folgenden ausführlich vorgestellt.

Die erste Methode besteht darin, eine Hash-Tabelle zu verwenden, um zu zählen, wie oft jede Zahl vorkommt. Zuerst müssen wir eine Hash-Tabelle definieren, in der jede Zahl der Schlüssel und die Häufigkeit des Vorkommens der Wert ist. Dann durchlaufen wir für den gegebenen Datensatz jede Zahl und vergleichen sie mit dem Schlüssel in der Hash-Tabelle. Wenn die Zahl bereits in der Hash-Tabelle vorhanden ist, addieren wir 1 zum entsprechenden Wert; wenn die Zahl nicht in der Hash-Tabelle vorhanden ist, fügen wir sie der Hash-Tabelle hinzu und setzen ihren Wert auf 1. Schließlich durchlaufen wir die Hash-Tabelle und finden die Zahl, die am häufigsten vorkommt, nämlich den Modus.

Das Folgende ist ein Codebeispiel, das eine Hash-Tabelle verwendet, um die Mehrheitsfunktion zu implementieren:

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int majorityElement(vector<int>& nums) {
    unordered_map<int, int> count;
    for (int num : nums) {
        count[num]++;
    }
    int majority = nums[0];
    int maxCount = count[nums[0]];
    for (auto& pair : count) {
        if (pair.second > maxCount) {
            majority = pair.first;
            maxCount = pair.second;
        }
    }
    return majority;
}

int main() {
    vector<int> nums = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4};
    int result = majorityElement(nums);
    cout << "The majority element is: " << result << endl;
    return 0;
}

Führen Sie den obigen Code aus und das Ausgabeergebnis ist:
Das Mehrheitselement ist: 4

Eine andere Methode besteht darin, die Eigenschaften von zu verwenden das Array zur Optimierung. Zuerst sortieren wir den Datensatz. Dann durchlaufen wir das sortierte Array und zählen, wie oft jede Zahl vorkommt. Da die gleiche Zahl kontinuierlich angezeigt wird, können Sie feststellen, ob sie kontinuierlich angezeigt wird, indem Sie vergleichen, ob die aktuelle Zahl und die vorherige Zahl gleich sind. Wenn die aktuelle Zahl mit der vorherigen Zahl übereinstimmt, wird die Zählung um 1 erhöht; andernfalls beginnen wir erneut mit der Zählung. Schließlich finden wir die Zahl mit der größten Anzahl, das ist der Modus.

Das Folgende ist ein Codebeispiel der mithilfe der Array-Sortierung optimierten Mehrheitsfunktion:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int majorityElement(vector<int>& nums) {
    sort(nums.begin(), nums.end());
    int majority = nums[0];
    int count = 1;
    int maxCount = 1;
    for (int i = 1; i < nums.size(); i++) {
        if (nums[i] == nums[i - 1]) {
            count++;
        } else {
            count = 1;
        }
        if (count > maxCount) {
            majority = nums[i];
            maxCount = count;
        }
    }
    return majority;
}

int main() {
    vector<int> nums = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4};
    int result = majorityElement(nums);
    cout << "The majority element is: " << result << endl;
    return 0;
}

Führen Sie den obigen Code aus. Das Ausgabeergebnis lautet:
Das Mehrheitselement lautet: 4

Die oben genannten sind zwei häufig verwendete Methoden zur Implementierung der Mehrheit in C++ Zahlenfunktion. Diese Methoden sind hocheffizient und können den Modus in verschiedenen Datensätzen korrekt finden. Basierend auf den tatsächlichen Anforderungen und Datenmerkmalen können wir eine dieser Methoden zur Lösung spezifischer Probleme verwenden. Ich hoffe, dass dieser Artikel Ihnen hilft, die Modusfunktion in C++ zu verstehen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Modusfunktion in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn