A może coś takiego jak procedura grupowania? Załóżmy (dla celów ilustracyjnych), że wiesz, że wartości wynoszą od 1 do 1 miliona. Skonfiguruj N pojemników o rozmiarze S. Więc jeśli S = 10000, będziesz mieć 100 pojemników, odpowiadających wartościom [1: 10000, 10001: 20000, ..., 990001: 1000000]
Następnie przejdź przez wartości. Zamiast zapisywać każdą wartość, wystarczy zwiększyć licznik w odpowiednim pojemniku. Wykorzystując punkt środkowy każdego przedziału jako oszacowanie, można dokonać rozsądnego przybliżenia mediany. Możesz skalować do tak dokładnej lub zgrubnej rozdzielczości, jak chcesz, zmieniając rozmiar pojemników. Jesteś ograniczony tylko ilością pamięci.
Ponieważ nie wiesz, jak duże mogą być Twoje wartości, po prostu wybierz rozmiar pojemnika wystarczająco duży, aby prawdopodobnie nie zabrakło pamięci, korzystając z szybkich obliczeń z tyłu koperty. Możesz również przechowywać pojemniki rzadko, tak że dodajesz kosz tylko wtedy, gdy zawiera on wartość.
Edytować:
Łącze, które zapewnia Ryfm, daje przykład tego, z dodatkowym krokiem użycia skumulowanych wartości procentowych w celu dokładniejszego oszacowania punktu w środkowym przedziale, zamiast tylko użycia punktów środkowych. To niezła poprawa.