问题
单项选择题
对于具有n个元素的关键字序列k1,k2,…,kn,当且仅当满足关系ki≥k2i且ki≥k2i+1()时称为大根堆。据此可以断定,()不是大根堆。
A.59,53,48,46,37,31,25
B.59,46,53,48,37,31,25
C.59,37,53,25,31,46,48
D.59,53,48,3l,25,46,37
答案
参考答案:B
解析:
本题考查排序算法。
利用完全二叉树结构可以容易地判断一个序列是否为堆。在完全二叉树上,结点i的左孩子编号为2i(若存在左孩子),右孩子编号为2i+1(若存在右孩子1),因此,只要判断每个结点是否同时大于其左、右孩子即可。
将题中A、B、C、D所表示的序列放入完全二叉树后,结果如下图所示,其中,B序列中46、48、37这三个元素不满足大顶堆的定义。
[*]