将整数数组(7-6-3-5-4-1-2)按照堆排序的方式进行升序排列,请问在第一

考试题库2022-08-02  49

问题 将整数数组(7-6-3-5-4-1-2)按照堆排序的方式进行升序排列,请问在第一轮排序结束之后,数组的顺序是( )。A.1-2-3-4-5-6-7B.2-6-3-5-4-1-7C.6-5-3-2-4-1-7D.5-4-3-2-1-6-7

选项 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

解析 数组已经是一个大顶堆,可直接开始排序。(大顶堆:每个节点的值都不小于自己两个左右子节的完全二叉树) 每轮输出堆顶元素后,以堆中最后一个元素代替之(由于此题要求原地排序,即不产生额外的空间,堆顶元素与最后一个元素交换)。再将新的顶点元素不断与其子节点中大于该元素的较大者交换,直到该元素大于其左右两个子节点,或成为叶子节点。此时将剩余元素调整成一个新的大顶推。由此得出,第一轮结束后的顺序是:6,5,3,2,4,1,7。
转载请注明原文地址:https://tihaiku.com/gongwuyuan/2556788.html

最新回复(0)