将整数数组(7-6-3-5-4-1-2)按照堆排序的方式进行升序排列 请问在第一轮排序结束之后 数组的顺
数组,升序
已帮助 人
将整数数组(7-6-3-5-4-1-2)按照堆排序的方式进行升序排列,请问在第一轮排序结束之后,数组的顺序是()。
A、1-2-3-4-5-6-7
B、2-6-3-5-4-1-7
C、6-5-3-2-4-1-7
D、5-4-3-2-1-6-7
-
参考答案:C。
参考解析:原数组已经是一个大顶堆,可直接开始排序。(大顶堆:每个节点的值都不小于自己两个左右子节的完全二叉树),每轮输出堆顶元素后,以堆中最后一个元素代替之(由于此题要求原地排序,即不产生额外的空间,堆顶元素与最后一个元素交换)。再将新的顶点元素不断与其子节点中大于该元素的较大者交换,直到该元素大于其左右两个子节点,或成为叶子节点。此时将剩余元素调整成一个新的大顶推。
