我正在为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
、
_
_
谢谢你。