2
我正在为java中的堆写入一个类。在java中更新当前堆
类堆有
class Heap{
int maxsize=1000;
int[] heap= new int[maxsize];
int size=0;
//.... some methods basically, print, insert and remove
int[] sortHeap(){
int[] sorted= new int[size];
Heap copy= new Heap();
copy.heap=heap;
copy.size=size;
int i=0;
while (copy.size>0){
sorted[i]=copy.remove();
i++;
}
return sorted;
}
}
一个方法我试图创建将返回排序堆。我不想破坏原来的堆。 但是,当我调用这个方法时,我调用它的原始堆被破坏。 有人可以向我解释为什么会发生这种情况?
例如。 说堆是 -17,
-1,-7,
1,0,2,-5,
17,57,27,3,127,如图9所示,//正确打印
现在我叫test.heapSort();然后打印结果数组。
然后打印堆之后此给出结果
127,
127,127,
57,57,127,27,
27,57,27,3,127,如图9所示,
谢谢。