Dazu müsste man wissen was mit "der Größe nach sortieren" gemeint ist. Die Arrays auf Basis der Elementanzahl oder sollen die Elemente irgendwie der Größe nach sortiert werden? Punkt ist hier, dass mehrdimensionale Arrays ja nicht zwingend die selbe Größe haben in den jeweiligen Ebenen (Bsp. Balkendiagramm mit unterschiedlicher Länge der Balken). Das erste Array gibt die Anzahl der Balken an, die sub-Arrays sind dann die Balken selber und die können verschieden lang sein.
Du kannst dir das genau so vorstellen, wie wenn du ein 1D-Array sortierst. Angenommen du nimmst Bubblesort. Dort gibt es eine kleine animierte Grafik wie und wann getauscht wird.
Jetzt kannst du das genau so auf 2D-Arrays ummünzen. Anstatt nur Zahlen zu tauschen, tauschst du eben ganze Arrays. (ein 2D-Array ist ja nichts anderes als ein Array von Arrays).
Code:
- boolean hasSwapped anlegen (true)
- solange wie hasSwapped true ist
- hasSwapped false setzen
- für jedes Element (Index i) im Array außer dem letzten
- für jedes Element ab Index i+1 im Array
- wenn findMax(element[i]) < findMax(element[i+1])
tausche element[i] mit element[i+1]
hasSwapped true setzen
findMax(array) soll einfach nur das Maximum in einem Array finden.
Theor. würde das ganze mit Java 8 auch einfacher gehen. Mach es aber erstmal so.
Edit: Wenn du mit "die erste größere Zahl soll oben stehen" wirklich das erste Element im Sub-Array meinst, kannst du die Bedingung auch umschreiben in:
Wieso soll ich denn Elemente y in betracht ziehen, die vor Element x liegen bzw die x selbst sind? Die hab ich doch in vorherigen Iterationen bereits geprüft.
- boolean hasSwapped anlegen (true)
- solange wie hasSwapped true ist
- hasSwapped false setzen
- für jedes Element (Index i) im Array außer dem letzten
- wenn findMax(element[i]) < findMax(element[i+1])
tausche element[i] mit element[i+1]
hasSwapped true setzen
Ja das hab ich mich gerade auch gefragt, als ich noch mal drüber nachgedacht habe. Ich glaub ich hab beim schreiben einfach den Gedanken das Maximum zu finden und den das Array zu sortieren vermischt. Die Zeile ist tatsächlich unnötig War wohl doch schon etwas spät
Gott sei Dank, dann bin ich ja beruhigt. Gedanklich hing ich nämlich zuerst bei "Simplesort" rum und nachdem mir ja gestern schon ein Fauxpas der übelsten Sorte unterlaufen ist, dachte ich schon, es geht los...