Problem
The heap sort algorithm first transforms a given array into a max heap (recall the problem “Building a Heap”). It then repeats the following two simple steps times:
- Swap the last element of the heap with its root and decrease the size of the heap by .
- "Sift-down" the new root element to its proper place.
Given: A positive integer and an array of integers from to .
Return: A sorted array .
堆排序算法首先将给定的数组转换为最大堆(回想一下“ Building a Heap”的问题)。然后重复以下两个简单步骤 时间:
- 交换堆的最后一个元素及其根,并减小堆的大小 。
- 将新的根元素“筛选”到适当的位置。
给定:正整数 和一个数组 来自的整数 至 。
返回:排序数组。
Sample Dataset
9 2 6 7 1 3 5 4 8 9
Sample Output
1 2 3 4 5 6 7 8 9