Java 这就是minheap的排序方式吗?

Java 这就是minheap的排序方式吗?,java,Java,我的教授声称我的Minheap在以下问题上是错误的: 使用minheap down将以下数字转换为minheap,并逐级绘制最终的minheap树和最终数组内容 给定阵列:100 10 80 30 60 50 40 70 20 90 我的答覆如下: 10 / \ 20 40 / \ / \

我的教授声称我的Minheap在以下问题上是错误的:

使用minheap down将以下数字转换为minheap,并逐级绘制最终的minheap树和最终数组内容

给定阵列:100 10 80 30 60 50 40 70 20 90

我的答覆如下:

                     10
                /          \
             20             40
            /  \           /  \
          30    60       80    50
          /\    /
        100 70  90
排序数组:10,20,40,30,60,80,50100,70,90


我错了吗?

最小堆是一个完整的二叉树,其中每个内部节点中的值小于或等于该节点子节点中的值。 将堆的元素映射到数组非常简单:如果一个节点存储在索引k中,那么它的左子节点存储在索引2k+1中,右子节点存储在索引2k+2中

你的答案是对的你错过了70和100这是错误的否则它是正确的

排序后的数组将被删除

10,20,40,30,60,50,80,70100,90


最小堆是一个完整的二叉树,其中每个内部节点中的值小于或等于该节点子节点中的值。 将堆的元素映射到数组非常简单:如果一个节点存储在索引k中,那么它的左子节点存储在索引2k+1中,右子节点存储在索引2k+2中

你的答案是对的你错过了70和100这是错误的否则它是正确的

排序后的数组将被删除

10,20,40,30,60,50,80,70100,90