经典面试题目;在 C++ STL 中,有 3 个 api 与此算法相关:

  1. partial_sort, 排序后保证前 K 个元素比后面的小1, 且前 K 个元素本身也是递增排列。用的是堆排序方法
  2. nth_element, 排序后保证前 K 个元素比后面的小,但前 K 个元素内部间不保证有序。用的是 introselect 算法
  3. partial_sort_copy, 和 partial_sort 算法逻辑一样,只不过不是 inplace 的。
  1. 或者满足给定的 comp-predicate 条件。本文为了方便,都仅描述 STL 的默认条件