힙 불변식

힙은 전체 정렬이 아니라 루트 후보를 유지한다

최소 힙은 부모가 자식보다 작거나 같은 상태만 지킵니다. 그래서 루트 한 칸이 빠른 조회 대상이고, 배열 전체는 정렬되어 보일 필요가 없습니다.

1top
4i=1
7i=2
9i=3
12i=4
8i=5
01
14
27
39
412
58
0
루트가 현재 극값 최소 힙에서는 index 0만 보면 현재 최소값을 알 수 있습니다.
push는 위로 복원 끝에 붙인 새 값이 부모보다 우선이면 swap하며 올라갑니다.
pop은 아래로 복원 루트 제거 후 마지막 값을 올리고 더 우선인 자식 쪽으로 내립니다.
검증 기준: 배열 정렬 여부가 아니라 모든 부모-자식 쌍이 `parent <= child`를 만족하는지 확인합니다.