| Idea: |
- a data structure for merging \(k\) sorted runs
- imagine playing a tournament; at each node we compare the two contestants; we store the loser in the node and the winner proceeds up in the tree
- the overall winner ends up in one extra slot above the root: the next element of the merge
- after an extraction, the run's new head must play the ancestors on its way to the root
- a winner tree stores the winner instead, which is more obvious but forces every replayed match to fetch the sibling node as well
|