首页 > 试题广场 >

初始序列为1 8 6 2 5 4 7 3的一组数采用堆排序,

[单选题]
初始序列为1 8 6 2 5 4 7 3的一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:( )
  • 8 3 2 5 1 6 4 7
  • 3 2 8 5 1 4 6 7
  • 3 8 2 5 1 6 7 4
  • 8 2 3 5 1 4 7 6
考察点:堆排序的建堆以及调整堆的操作
1.堆在内存中的表现形式是以数组的形式存储
2.堆是一个完全二叉树
建堆:建堆的过程就是一个反复筛选的过程
1.每次都插到数组的末端,形成一个完全二叉树;
2.从最后一个非终端节点开始,直到第一个节点为止(只和子节点比较);
删除堆:
1.每次都是删除第一个;
2.然后最后一个数字补进来;
3.然后调整堆
调整堆:
1.每次都是与最小的儿子进行交换;
2.每次都是从倒数第一个非终端节点开始调整;
编辑于 2015-08-31 09:14:09 回复(2)
发表于 2016-07-05 20:56:29 回复(0)
A


发表于 2015-08-27 08:01:47 回复(0)
题目的意思是第一次建立最小推后的中序排序
发表于 2016-06-13 21:18:02 回复(0)
很简单的堆排序,过程如下图

具体过程看一下这个:http://blog.csdn.net/morewindows/article/details/6709644/
自己编程推一下,以后就没问题了

发表于 2015-08-28 10:01:45 回复(3)
发表于 2022-07-01 17:11:25 回复(0)

二叉堆的定义

二叉堆是完全二叉树或者是近似完全二叉树。

二叉堆满足二个特性:

1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。

2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。

当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆:

发表于 2017-02-17 18:07:53 回复(0)
选A,数据插入建立小根堆每层依次为1    24      3567   8,所以中序遍历为A
发表于 2015-08-27 15:23:28 回复(0)