部分ソート(1)

 まず、n個の配列をヒープとしてソートする。これは計算コストはnだ。次に、ヒープから最小のm個を取ってくる。popはlog nの操作なので、構築nとm回のlog nによる抽出で、計算量はn + m log nになる。これが伝統的なC++STLのpartial_sortのアルゴリズムらしい。libstdc++のpartial_sort_copyは、実際そんな感じの実装になっているように見える。