Modalwert mit Arrays



  • Hallo,
    ich Programmiere in C und habe folgendes Problem.
    Ich möchte eine Funktion schreiben, die mir den Modalwert ausrechnet. Dabei soll auch berücksichtigt werden, das einige Zahlen mehrmals vorkommen können. Das ganze möchte ich mit Arrays (eindimensional oder zweidimensional) lösen. Gibt es vllt. einige Vorschlage oder jemanden der so etwas schon einmal gemacht hat? 😕

    Mfg



  • Hallo,
    erstmal musst du deine Daten irgendwie in das Array bekommen, d.h. aus einer Datei einlesen oder in der Konsole eintippen. Dann wird das Array sortiert und es werden die Häufigkeiten bestimmt. Daraus wird der Modalwert bestimmt.

    Gruß,
    B.B.



  • B.B. schrieb:

    Dann wird das Array sortiert und es werden die Häufigkeiten bestimmt.

    Wozu sortieren?
    🙂



  • mngbd schrieb:

    B.B. schrieb:

    Dann wird das Array sortiert und es werden die Häufigkeiten bestimmt.

    Wozu sortieren?
    🙂

    Ochdnung muss sein 😃
    💡 und bei einem 'eindimensionalen' Array ist man mit dem Zählen der Häufigkeiten schneller fertig. 💡
    🙂



  • Wenn die Menge der Werte im Array groß ist (a), dann würde ich erst das array sortieren und dann die Häufigkeit durchzählen und merken, welcher Wert bis jetzt am häufigsten war und wie oft er vorkam. Ist die Menge dagegen klein (b), kann man einfach ein zweites Array (länge = Anzahl mögl. Werte) anlegen und dort die jeweiligen Summen bilden und am Ende die größte Summe suchen.

    a) hat den Vorteil, dass man praktisch keinen zusätzlichen Speicher braucht (nur zum Merken des jeweiligen Maximalwertes und dessen Häufigkeit). Laufzeit O(n*log n), Speicher O(1)

    b) Laufzeit O(n), Speicher O(k) (k = Anzahl der möglichen Werte im Array)



  • Tim schrieb:

    a) hat den Vorteil, dass man praktisch keinen zusätzlichen Speicher braucht (nur zum Merken des jeweiligen Maximalwertes und dessen Häufigkeit).

    Überzeugt, man will vielleicht sortieren.
    🙂



  • Was mir noch aufgefallen ist ist die Problemstellung nichteindeutiger Modalwert.


Anmelden zum Antworten