0 Daumen
963 Aufrufe

Aufgabe:

Der Modus einer Menge von Zahlen ist eine Zahl, die am häufigsten in der Menge vorkommt.

Zum Beispiel hat die Menge {4,6,2,4,3,1} den Modus 4.

Geben Sie Pseudocode für einen effizienten Algorithmus an, der den Modus einer Menge von n Zahlen berechnet.

Avatar von

2 Antworten

+1 Daumen

Antwort mit KI erzeugt

Pseudocode für den Algorithmus zur Berechnung des Modus

Der folgende Pseudocode beschreibt einen effizienten Algorithmus zur Bestimmung des Modus in einer Menge von Zahlen. Der Algorithmus verwendet ein HashMap oder Dictionary, um die Häufigkeit jedes Elements zu zählen und findet dann das Element mit der höchsten Zählung.

plaintext
Algorithmus FindeModus(Zahlen):
    Erstelle ein leeres Dictionary Häufigkeiten
    Für jede Zahl in Zahlen:
        Wenn Zahl bereits ein Schlüssel in Häufigkeiten ist:
            Erhöhe Häufigkeiten[Zahl] um 1
        Sonst:
            Setze Häufigkeiten[Zahl] = 1
            
    Initialisiere MaximumHäufigkeit = 0
    Initialisiere Modus = null
    
    Für jedes (Schlüssel, Wert) Paar in Häufigkeiten:
        Wenn Wert > MaximumHäufigkeit:
            MaximumHäufigkeit = Wert
            Modus = Schlüssel
            
    Rückgabe Modus


Erläuterung

- Der Algorithmus beginnt mit der Erstellung eines leeren Dictionaries (oder einer Hashmap), das zur Speicherung der Häufigkeit jedes Elements in der Menge verwendet wird.
- Dann durchläuft der Algorithmus jedes Element der Menge und aktualisiert seine Häufigkeit im Dictionary. Wenn das Element bereits existiert, wird seine Zähler um eins erhöht; ansonsten wird das Element mit einer Zähler von eins hinzugefügt.
- Nachdem die Häufigkeiten aller Elemente erfasst wurden, durchsucht der Algorithmus das Dictionary, um das Element (bzw. die Zahlen) mit der höchsten Häufigkeit zu finden. Die Variable MaximumHäufigkeit verfolgt die höchste bisher gefundene Häufigkeit, während Modus das Element mit dieser Häufigkeit speichert.
- Schließlich gibt der Algorithmus den Wert von Modus zurück, welcher der am häufigsten vorkommende Wert in der Menge ist.

Dieser Algorithmus hat eine Laufzeitkomplexität von \(O(n)\), da jede Zahl genau einmal durchlaufen wird, um die Häufigkeiten aufzubauen, und danach das Dictionary einmal durchsucht wird, um den Modus zu finden. Die zusätzliche Speicherkomplexität kommt durch das Dictionary, dessen Größe von der Anzahl der unterschiedlichen Zahlen in der Menge abhängt.
Avatar von
0 Daumen
für einen effizienten Algorithmus

Zu ungenau => Wie effizient? Laufzeit?

Eine Möglichkeit:
- Hashtable; Key = Zahl, Value = "Wie oft kommt diese Zahl vor"
- Maximum der Value-Menge bilden und korrespondierenden Key ermitteln

Für jeden Schritt gibt es diverse Algorithmen im Internet. Ohne Kenntnis eurer "Pseudocode-Konvention", kann man Dir hier nur die Richtung vorgeben.

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community