合并排序(内存受限版)

Kotlin Hard sorting

任务 «合并排序(内存受限版)»

给定一个整数数组。需要将其按升序排序,仅使用 O(1) 额外内存(即不使用额外的数组或列表)。只允许在原数组中移动元素。请实现一种原地(in-place)且采用迭代方式(自底向上)的归并排序算法。输出排序后的数组,元素之间用空格分隔。

输入格式

第一行包含一个整数 N (1 ≤ N ≤ 10^5)。第二行包含 N 个以空格分隔的整数。

输出格式

一行:N个整数,按升序排列,以空格分隔。

示例

示例 1

输入
1 42
输出
42

示例 2

输入
6 6 5 4 3 2 1
输出
1 2 3 4 5 6

示例 3

输入
3.0 4.0
输出
Invalid input

示例 4

输入
6 4 2 2 8 3 3 1
输出
2 2 3 3 4 8
main.kt