如何在10亿数中找出前1000大/小的数?

1、内存空间足够大 分治法 随机选一个数flag,而后对整个数组进行分割,会获得两部分,前一部分的数都大于flag,后一部分的数都小于flag。ios 示例:web 若是说前一部分总数大于1000个,那就继续在前一部分进行分割。若是前一部分的数小于1000个,那就在后一部分再进行分割,寻找剩下的数。利用分治法,对左边或者右边进行循环分割,直到找够Top 1000。数组 时间复杂度 :O(N)分布式
相关文章
相关标签/搜索