将整数数组(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

热搜:fun函数的功能是求3行4列二维数组每行元素中的最大值

答案解析

难度★★☆ 搜索
  • 参考答案:C。
    参考解析:原数组已经是一个大顶堆,可直接开始排序。(大顶堆:每个节点的值都不小于自己两个左右子节的完全二叉树),每轮输出堆顶元素后,以堆中最后一个元素代替之(由于此题要求原地排序,即不产生额外的空间,堆顶元素与最后一个元素交换)。再将新的顶点元素不断与其子节点中大于该元素的较大者交换,直到该元素大于其左右两个子节点,或成为叶子节点。此时将剩余元素调整成一个新的大顶推。