Median von 600 Werten

Hi

Was heißt 'möglichst schnell' bei einer Wartezeit von 10 Minuten?

Wenn Du nur diese eine Aufzeichnung brauchst und KEINEN runningMedian - reichen Dir 300 Werte im Speicher.

Array mit 300 Elementen nullen
Bei jedem Messwert von der Mitte beginnen und prüfen, ob

  • die aktuelle Stelle 0 ist -> Messwert dort eintragen, fertig
  • die aktuelle Stelle > dem Messwert ist --> eine Stelle nach unten --> sind wir bereits an Stelle 0, ALLE Stellen 1x nach oben schieben, Messwert an Stelle 0 eintragen
    ... Gleiches, bei < dem Messwert in entgegen gesetzter Richtung

So 'wandern' die kleinen Messwerte nach links, die Großen nach Rechts.
ALLES, was größer als der 300.ste Messwert ist, wird verworfen, da eh 'zu weit rechts'.

Nach 600 Messwerten sollte der Median an unserer Stelle 300 stehen (bzw. Mittelwert zw. 299 & 300).

Da dir Sortiererei während der Aufnahme geschieht (alle Sekunde), hast Du nach Ende der Messung als einzige Warterei das Auslesen des Wertes an Stelle 300 - sollte man mit leben können.

MfG