gpt4 book ai didi

c++ - "Best"(惯用)从 C++ 容器中选择 k 个最小元素的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:07 29 4
gpt4 key购买 nike

<分区>

我发现自己经常遇到这个问题:给定一个序列,找到最小的 k 元素。这个问题并不难,但我正在寻找的是一种既安全又“惯用”的方法(很少有错误的地方)并且可以很好地传达意图。所以最终要做的是对序列进行排序,然后取第一个 k 元素:

std::sort(container.begin(),container.end());
std::vector<T> k_smallest(container.begin(),container.begin() + k);

在我看来,这既安全又易于理解,但这里的复杂度是 nlogn + k,而不仅仅是 n。你们是怎么做到的,有没有一种惯用的方法(可能使用一些晦涩的函数)可以提供最佳的复杂性而无需重新实现轮子

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com