heap build strategy

입력 방식이 힙 구축 비용을 결정한다

한 번에 받은 데이터는 아래에서 heapify하고, 계속 들어오는 값은 push로 유지합니다. 상위 K만 필요하면 힙 크기를 K로 제한합니다.

1
스트림 입력: push/pop 값이 올 때마다 O(log N)으로 힙 조건을 복원합니다.
2
배치 입력: heapify 마지막 부모부터 sift down해 전체 구축을 O(N)에 끝냅니다.
K
상위 K: 크기 제한 힙 필요 없는 값은 즉시 버려 전체 정렬 비용을 피합니다.