首页 > 试题广场 >

下列四个序列中,哪一个是堆( )。

[单选题]

下列四个序列中,哪一个是堆(      )。

  • 75,65,30,15,25,45,20,10
  • 75,65,45,10,30,25,20,15
  • 75,45,65,30,15,25,20,10
  • 75,45,65,10,25,30,20,15
选C
【分析】

C选项满足最大堆的性质。
判断是否为堆排序,要根据堆排序的两点性质来判断,分别是:
(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n) //ki相当于二叉树的非叶结点,K2i则是左孩子,k2i+1是右孩子
(2)若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:
树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字

发表于 2019-04-09 18:44:04 回复(0)
更多回答
推荐
选C。根据堆的定义堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:即分为最大堆:根节点大于或等于左右子结点;最小堆:节点小于或等于左右子结点。
 Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2]

编辑于 2019-04-10 14:23:29 回复(2)
选c,大根堆的左右孩子都比父节点小,只有c满足
发表于 2017-03-01 19:25:11 回复(0)
堆满足下列性质:【用堆的性质来判断是否为堆】
  • 堆中某个节点的值总是不大于或不小于其父节点的值;
  • 堆总是一棵完全二叉树;
发表于 2022-08-26 17:39:41 回复(0)
大根堆左右节点都要比他小
发表于 2022-10-14 15:00:14 回复(0)