Top-K stream
K칸 힙은 후보만 남기고 경계값을 빠르게 올린다
Top-K largest는 최소 힙을 둔다. 루트가 가장 약한 후보이므로 새 값이 루트를 넘을 때만 교체하면 된다.
82
91
88
boundary=82 새 값 95는 들어오고 77은 버린다. 메모리는 K칸으로 고정된다.
Top K largest → 최소 힙
가장 작은 후보를 루트에 두어 교체 대상을 바로 찾는다.
Top K smallest → 최대 힙
가장 큰 후보를 루트에 두어 작은 값만 남긴다.
출력은 따로 정렬
힙은 후보 유지용이다. 순위표가 필요하면 마지막 K개만 정렬한다.
K 크기K가 N에 가까우면 정렬과 비용 차이가 줄어든다.
동점score가 같을 때 id나 입력 순서를 함께 저장한다.
무한 스트림출력 주기와 종료 조건을 별도로 정한다.