C ++ nth_element算法的有趣用例是什么?

时间:2019-05-18 19:28:34

标签: c++ algorithm stl

我发现了很多有关如何使用C ++ STL的nth_element算法的问题和答案,但是到目前为止,我还没有找到任何有趣的用例。特别是,在实际的用例中,我将使用nth_element而不是仅对整个向量进行排序?

编辑:显然,nth_element可用于查找数据的中位数或其他百分位数,但由于它修改了矢量,因此效率似乎较低。

2 个答案:

答案 0 :(得分:3)

您想回答“中位数是多少?”数据集。不需要对其进行排序,您只需要一个条目,其中50%大于50%小于50%。

答案 1 :(得分:3)

一个典型的用例是,由于它太大而不想对整个集合进行排序。如果只需要前n个,则使用nth_element对集合进行分区。然后,第一个分区包含前n个元素。