Tri par fusion avec limitation de mémoire

Kotlin Hard sorting

Tâche «Tri par fusion avec limitation de mémoire»

Étant donné un tableau d'entiers. Il faut le trier par ordre croissant en utilisant uniquement O(1) de mémoire supplémentaire (c'est-à-dire sans utiliser de tableaux ou de listes supplémentaires). Il est permis de déplacer les éléments uniquement dans le tableau d'origine. Implémentez un algorithme de tri par fusion in-place avec une approche itérative (bottom-up). Affichez le tableau trié séparé par des espaces.

Format d\ entrée

La première ligne contient un entier N (1 ≤ N ≤ 10^5). La deuxième ligne contient N entiers séparés par des espaces.

Format de sortie

Une ligne : N entiers triés par ordre croissant, séparés par des espaces.

Exemples

Exemple 1

ENTRÉE
1 42
SORTIE
42

Exemple 2

ENTRÉE
6 6 5 4 3 2 1
SORTIE
1 2 3 4 5 6

Exemple 3

ENTRÉE
3.0 4.0
SORTIE
Invalid input

Exemple 4

ENTRÉE
6 4 2 2 8 3 3 1
SORTIE
2 2 3 3 4 8
main.kt