<分区>
Possible Duplicate:
Algorithm to find k smallest numbers in array of n items
如何找到一个非常大的数组中的前 20 个最小元素?
<分区>
Possible Duplicate:
Algorithm to find k smallest numbers in array of n items
如何找到一个非常大的数组中的前 20 个最小元素?
最佳答案
你有两个选择
第二个可能看起来更慢,但它实际上取决于数组的大小。您可以一次遍历数组来完成此操作,因此最好在 80 亿左右的数组上执行此操作。
编辑:第一个算法是O(n lg n)
。第二种算法是 O(k n)
,这里的 k 是 20(您需要前 20 个)。因此,当 lg n > 20
或 n > 2^20
或 n > ~1000000
时,第二种算法更快。因此,如果您的属性(property)少于一百万,您最好进行分类。如果您的 Assets 超过一百万,您最好制作外部列表并一次性通过。
关于arrays - 排序数组以找到前 20 个最小的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7740561/