Q210FreeSystemVerilog
Use lower-bound insertion for top-K largest
Interview prompt
Question
Keep the bounded top-K queue sorted and use binary search to locate each insertion position.
Starting point
Question code
class TopKLargestBinary;
function new(int k, int sentinel = -1);
function automatic int lower_bound(int x);
function void push(int x);
function int get_kth();
function void snapshot_desc(ref int out[$]);
endclassReviewed example
Trace one case
Input
K=3; ascending retained queue=[4,7,9]; insert(8)Expected output
lower_bound(8)=2; retained queue=[7,8,9]Binary search locates the insertion point, then the smallest of four candidates is removed to restore the K bound.
What to cover
Requirements
- Implement lower_bound(x) over an ascending queue.
- Insert every value while fewer than K observations are retained.
- Once full, ignore values no greater than the smallest retained value.
- Explain why binary search reduces comparisons but queue insertion still costs O(K).

