Top-k statt Sortieren
Woran ich gerade arbeite
Ich bin über eine einfache Frage gestolpert:
Warum sortiere ich eigentlich alles?
In vielen Fällen brauche ich gar keine vollständige Ordnung.
Ich will nur wissen: Was sind die größten Werte?
Gedanke
Sortieren fühlt sich oft „richtig“ an.
Aber eigentlich ist es häufig zu viel.
Wenn ich nur Top-k brauche, dann ist Sortieren Overkill.
Was sich geändert hat
Ich denke nicht mehr in „Ordnung herstellen“,
sondern in „Unwichtiges verwerfen“.
Das Problem ist kein Sortierproblem, sondern ein Auswahlproblem.
Beobachtung
Wenn ich nur wenige Kandidaten behalte (z. B. 10–16),
passt das komplett in den Cache.
Der Rest der Daten bleibt unsortiert.
Ich gehe einmal durch – und filtere.
Reality Check
Python bestätigt das ziemlich klar:
sorted()macht mehr Arbeit als nötigheapq.nlargest()passt besser zum Problem- mein eigener Ansatz zeigt die gleiche Richtung (auch wenn er nicht schneller ist)
Für mich mitgenommen
Ich habe nichts Neues erfunden.
Aber ich habe meinen Blick geändert:
Nicht alles ordnen. Erst überlegen, was ich ignorieren kann.