T791647 【P1099】 - 构建二叉堆

题目描述

输入一组无序的数组,然后构建出一个大顶堆 构建大顶堆的过程是: 从最后一个非叶子节点到根节点开始进行下沉操作,下沉操作是:当前节点与左右孩子比较,如果比孩子大,则已调整为堆,如果比孩子小,则与较大的孩子交换,交换到新的位置后,继续向下比较,一直比较到叶子节点 比如输入的数据是: ``` 10 4 1 3 2 16 9 10 14 8 7 ``` 构建大顶堆的过程是: ![](https://cdn.luogu.com.cn/upload/image_hosting/s2wfdnn8.png) ![](https://cdn.luogu.com.cn/upload/image_hosting/xmaps6rl.png) ![](https://cdn.luogu.com.cn/upload/image_hosting/7tqxvjg4.png) ![](https://cdn.luogu.com.cn/upload/image_hosting/8jnu6s4f.png) ![](https://cdn.luogu.com.cn/upload/image_hosting/joqan7du.png) ![](https://cdn.luogu.com.cn/upload/image_hosting/y8zrmu5w.png)

输入格式

第1行,1个正整数n代表数组的大小 第2行,n个整数,数组中的元素,使用空格分隔

输出格式

输出构建的大顶堆的每个节点的值,从1到n号节点的值,使用空格分隔

说明/提示

100%的数据:$1 \le n \le 250$,每个节点的值在int取值范围内