Wie wäre es mit so etwas wie einem Binning-Verfahren? Nehmen Sie an (zur Veranschaulichung), dass Sie wissen, dass die Werte zwischen 1 und 1 Million liegen. Richten Sie N Fächer der Größe S ein. Wenn also S = 10000 ist, stehen 100 Fächer zur Verfügung, die den Werten [1: 10000, 10001: 20000, ..., 990001: 1000000] entsprechen.
Gehen Sie dann die Werte durch. Anstatt jeden Wert zu speichern, erhöhen Sie einfach den Zähler im entsprechenden Fach. Unter Verwendung des Mittelpunkts jedes Fachs als Schätzung können Sie eine vernünftige Annäherung an den Median vornehmen. Sie können diese Einstellung beliebig fein oder grob skalieren, indem Sie die Größe der Fächer ändern. Sie sind nur durch Ihren Speicherplatz begrenzt.
Da Sie nicht wissen, wie groß Ihre Werte werden können, wählen Sie einfach eine Behältergröße aus, die groß genug ist, damit Ihnen wahrscheinlich nicht der Arbeitsspeicher ausgeht. Sie können die Lagerplätze auch sparsam lagern, sodass Sie einen Lagerplatz nur dann hinzufügen, wenn er einen Wert enthält.
Bearbeiten:
Der von ryfm bereitgestellte Link gibt ein Beispiel dafür, wobei zusätzlich die kumulativen Prozentsätze verwendet werden, um den Punkt innerhalb des Median-Bin genauer zu schätzen, anstatt nur die Mittelpunkte zu verwenden. Das ist eine schöne Verbesserung.