[C++] sortieren von Datensätzen

K

Kaire

Hallo,

ich habe hier schon des öfteren Lösungen gefunden, diesmal konnte ich leider nichts finden, also frage ich mal selbst. Wahrscheinlich suche ich mit den falschen Wörtern.

Ich habe eine riesige Datei (bis zu 1Gig und auch mal mehr). Jede Zeile besteht aus 25 Zahlen, die mit Leerzeichen getrennt sind. Jede Zeile ist ein zusammenhängender Datensatz. Ich muß nun alle diese Zeilen nach der letzten Zahl in der jeweiligen Zeile sortieren, ohne daß die letzte Zahl den Kontakt zu den restlichen 24 Zahlen in der Zeile verliert, da ich nur die 50 größten und kleinsten Werte aus dieser Datei brauche.

Ich bin schon auf sort gestoßen, aber bei den bisher gefundenen Beispielen werden immer nur einzelne Zahlen sortiert und ich stehe zur Zeit etwas auf dem Schlauch.

Irgendwelche Ideen oder neue google Schlagwörter?
Vielen Dank im vorraus :)

Kaire
 
Hi.

Um eine Datei > 1GB zu sortieren muss man sich schon etwas einfallen lassen, da die naive Methode erstmal alles in einen Container zu laden und im Speicher zu sortieren eher nicht zweckmäßig ist.

Möchtest du jetzt einfach nur wissen wie man das macht damit du es programmieren kannst, oder würde dir evtl. schon das Programm sort (GNU sort ist Teil der coreutils) helfen welches genau das Sortieren leistet?

Gruß
 
Such mal nach "externen Suchverfahren", die werden können verwendet werden, wenn nicht alle Daten in den Hauptspeicher passen. Schau auch speziell unter "Mergesort"

Grüsse...
 
Zurück