c – 使用stl-containers查找序列的k-maximal元素的最快算法是什么

我需要最快的算法来使用c任何stl-containers来查找序列的k-maximal元素.
我的想法:使用列表或向量,对它们进行排序,获得第一个k元素.在这种情况下,操作数等于n * log(n). n – 元素数量.
但我认为这不是最好的.
使用std :: partial_sort的方法可能是最好的答案.

另请注意std :: nth_element,它只是在第n个位置获取元素(并将序列分成’之前’较小’和’更大’之后第n个元素

所以,如果你真的只对前k个元素感兴趣(没有特别的内部排序)那么nth_element肯定会拿饼干

相关文章
相关标签/搜索