我给出了以下值:
17 5 20 33 41 30 28 55 17 26 35 19 11 14 60
使用自下而上的构造,我发现自己处于这样一种情况:在这种情况下我无法决定交换哪个节点。特别是当向下渗透值60并交换时,会发生这种情况。在某一点上,它到达这里(树的一部分):
60
/ \
17 17
现在我们需要用两个子值中较小的一个来交换60,我选择哪一个,左边还是右边?我的直觉告诉我选择合适的孩子,因为堆通常是从上到下构建并从左到右扫描,因为它要求Heaps完成。
**请注意,由于代表不足,我无法将其标记为作业。
答案 0 :(得分:0)
这并不重要,因为无论你选择哪一个,堆都会很好。我会选择正确的,因为由于平均深度略低,它的平均速度会快一些。