请你手写一个堆,并使用该堆实现排序。
给定一个长度为 n 的整数序列 a1,a2,…,an,你需要将这个序列按从小到大的顺序排序后输出。
你需要自己实现一个堆结构,并通过堆完成排序。
第一行输入一个整数 n,表示序列长度。
第二行输入 n 个整数,分别表示 a1,a2,…,an。
输出一行,共 n 个整数,表示排序后的序列。
相邻两个整数之间用一个空格分隔。
5
4 1 5 2 3
1 2 3 4 5
8
10 -1 3 3 7 0 -5 2
-5 -1 0 2 3 3 7 10
对于所有测试数据,满足:
1≤n≤105
−109≤ai≤109