the merge sorts at most 2 * k items and then takes the top k. so the sort is only "wasteful" by a factor 2 at most. 
is it worth it to pull out a queue structure for that?