81501 - 模拟堆排序

通过次数

130

提交次数

174

时间限制 : 1 秒
内存限制 : 128 MB

编写一个程序,用堆排序方法将输入的N个整数从小到大排序。

需要输出建堆的后整个数组。

然后输出堆中去掉第一个元素后整个数组。

输出堆中去掉第二个元素后的整个数组。

......

直到完成排序。

输入

第一行是一个正整数N (1 ≤ N ≤ 1000),表明数组中元素的个数。排序

第二行有N个整数,表示待排序的N个数组元素。

输出

输出N+1行,每行n个数字,表示排序过程的元素

样例

输入

10
7 2 5 4 9 6 3 10 1 8

输出

10 9 6 4 8 5 3 2 1 7
9 8 6 4 7 5 3 2 1 10
8 7 6 4 1 5 3 2 9 10
7 4 6 2 1 5 3 8 9 10
6 4 5 2 1 3 7 8 9 10
5 4 3 2 1 6 7 8 9 10
4 2 3 1 5 6 7 8 9 10
3 2 1 4 5 6 7 8 9 10
2 1 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

提示

如果两个叶子节点均优于父节点且两个叶子节点相等,那么请选择左儿子与父节点交换