2
자바에서 힙에 대한 클래스를 작성 중입니다.현재 힙이 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, -2,
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
감사합니다.