힙 복원

힙 검증 기준

힙 배열은 정렬 배열이 아닙니다. 부모-자식 관계와 top 복원 방향을 보면 push, pop, heapify의 목적이 선명해집니다.

push

새 값은 위로 복원

끝에 넣은 뒤 부모와 비교하며 올라가 top 조건을 다시 만족시킵니다.

pop

루트 교체 뒤 아래로 복원

마지막 값을 루트에 올린 뒤 더 우선인 자식과 바꾸며 힙 조건을 회복합니다.

heapify

대량 입력은 아래에서 만든다

전체를 반복 삽입하지 않고 내부 노드부터 내려가며 O(N) 빌드를 노릴 수 있습니다.

힙 디버깅에서 볼 항목

방향최소 힙인지 최대 힙인지 비교 부호와 저장 값 변환을 일치시킵니다.
중복같은 우선순위가 들어와도 비교 가능한 값만 tuple에 넣는지 확인합니다.
출력top 조회와 정렬된 전체 출력은 목적이 다르므로 별도 비용으로 계산합니다.