Mergesort ohne Arrays / Listen

freakdran

Mitglied
Hallo,

und schon wieder frage ich nur nach, aber wenn man es nicht besser weis.. ;(

Also dieses mal sollen wir wie oben beschrieben einen Mergesort ohne ein einziges Array und ohne Lists (wurden bisher in der Vorlesung noch nicht behandelt also sind sie Tabu) schreiben. Was wir verwenden dürfen ist eine Hauptdatei (Textdokument), in der Anfangs n unsortierte Zahlen in einer Zeile stehen, dabei ist die erste Zahl die Anzahl der zu sortierenden Elemente (n-1). Außerdem zwei weitere Textdokumente für jeweils linke und rechte Seite des Mergesort.

Beim Mergesort geht es doch darum eine unsortierte Folge von Zahlen aufzuspalten bis jede sozusagen alleine steht, also (3, 1, 4, 2) erst in (3, 1)(4, 2) und dann in (3)(1)(4)(2) und diese dann wieder in 2er, 4er, etc-Blöcken zusammenzufügen, nur wird dabei immer das linke mit dem rechten verglichen und so geordnet.
Aber wie kann ich wenn ich nur zwei "Hilfsdateien" hab es in unendlich viele kleinere Hilfsdateien aufspalten?
Ich kann es ja die rechte bzw linke Seite auch nicht in einem String speichern, da ich ja nicht weis wie viele dieser Strings ich dann benötige.

Was ich schon hab ist eine Methode die mir die Maindatei in die beiden Hilfsdateien Teilt in der Mitte, wobei die erste Zahl weggelassen wird da sie ja nur die Längenangabe ist. Aber wie ich es sinnvoll weiter aufteilen soll, ohne dass etwas verloren geht habe ich echt gar keine Ahnung gerade.
Das Sortieren der beiden Hilfsdateien zurück in die Maindatei habe ich auch, aber das bringt mir ja nichts, da ja (2 1 3 4) in (2 1)(3 4) aufgeteilt und zu (2 1 3 4) zurück zusammengesetzt.
Nur ob der Code was bringt wenn ich ihn poste weis ich nicht, da wir mit Hilfsbibliothek arbeiten und da Dinge doch sehr verkürzt sind.

Kann auch sein, dass es ganz einfach ist und ich einfach auf dem Schlauch stehe und ein kleiner Tipp schon hilft..
 

Neue Themen


Oben