Mergesort mit Speicherbegrenzung
Kotlin
Hard
sorting
Aufgabe «Mergesort mit Speicherbegrenzung»
Gegeben ist ein Array aus ganzen Zahlen. Es muss aufsteigend sortiert werden, wobei nur O(1) zusätzlicher Speicher verwendet werden darf (d.h. ohne Verwendung zusätzlicher Arrays oder Listen). Es ist erlaubt, Elemente nur im ursprünglichen Array zu verschieben. Implementieren Sie den in-place Mergesort-Algorithmus mit einem iterativen Ansatz (bottom-up). Geben Sie das sortierte Array, getrennt durch Leerzeichen, aus.
Eingabeformat
Die erste Zeile enthält eine ganze Zahl N (1 ≤ N ≤ 10^5). Die zweite Zeile enthält N ganze Zahlen, getrennt durch Leerzeichen.
Ausgabeformat
Eine Zeile: N ganze Zahlen, aufsteigend sortiert, getrennt durch Leerzeichen.
Beispiele
Beispiel 1
EINGABE
1
42
AUSGABE
42
Beispiel 2
EINGABE
6
6 5 4 3 2 1
AUSGABE
1 2 3 4 5 6
Beispiel 3
EINGABE
3.0 4.0
AUSGABE
Invalid input
Beispiel 4
EINGABE
6
4 2 2 8 3 3 1
AUSGABE
2 2 3 3 4 8
main.kt