Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组的最大堆表示法_Java_Arrays_Binary Heap_Heap Size_Max Heap - Fatal编程技术网

Java 数组的最大堆表示法

Java 数组的最大堆表示法,java,arrays,binary-heap,heap-size,max-heap,Java,Arrays,Binary Heap,Heap Size,Max Heap,作为家庭作业问题,我必须从数组中提取最大堆。问题内容如下: 请取出存储在以下数组中的最大堆(heapsize为6) A[]={15,10,8,5,2,7,20,30} 所以,当我尝试这个问题时,我只是用老式的方式来做,没有考虑到heapSize小于数组大小 我得到的最大堆数是: {30,20,15,10,2,7,8,5} 我的问题是:这是正确的吗?另外,既然heapSize小于数组大小,这将如何影响生成的最大堆?我应该只显示最大堆数组直到第6个元素,还是修改最大堆 谢谢 我想你误解了这个练习 如

作为家庭作业问题,我必须从数组中提取最大堆。问题内容如下:

请取出存储在以下数组中的最大堆(heapsize为6) A[]={15,10,8,5,2,7,20,30}

所以,当我尝试这个问题时,我只是用老式的方式来做,没有考虑到heapSize小于数组大小

我得到的最大堆数是: {30,20,15,10,2,7,8,5}

我的问题是:这是正确的吗?另外,既然heapSize小于数组大小,这将如何影响生成的最大堆?我应该只显示最大堆数组直到第6个元素,还是修改最大堆


谢谢

我想你误解了这个练习

如果我们从字面上理解这个练习,并从给定数组中“抽出”大小为6的最大堆,我们会得到如下树:

      15
   10    8
  5  2  7 20
30
您可以看到数组的前6个元素是按堆顺序排列的

这看起来也很像堆排序的中间状态: 最大值30是最后一个元素,其次是第二大值20。 如果我们遵循堆排序算法, 将当前最大堆元素15与最后一个元素7交换, 等等 数组将以按递增顺序排序的值结束

我不知道这个练习“抽出”最大堆是什么意思, 但我怀疑这是否意味着要对阵列进行重装,而你就是这么做的