힙은 이진트리로 구현된다.
부모 노드가 자식보다 항상 크다.
부모 노드가 자식보다 항상 작다.
항상 힙이 왼쪽 자식 부터 채워진다는 complete tree의 성질을 이용한다면
배열로 구현 가능하다.
자식에서 부모 노드로 parent : (i - 1) / 2
부모에서 자식 노드로 left chlid : 2i + 1, right child: 2i + 2
만약 천만개의 수중 가장 큰 3개를 힙으로 구현하려면 1000만개의 공간이 필요
⇒ 3개로 제한한 min heap
1 7 3
3 5. ⇒ 3. 5. ⇒ 7. 5
7
이미 3개인 경우 하나를 넣을 때 가장 작은 탑을 제거하면서 넣어주면 결국엔 가장 큰거 3개 남는다.