经典指数          
原因
2061
浏览数
0
收藏数
 

100亿个整数,内存足够,如何找到中位数?内存不足,如何找到中位数?

     举报   纠错  
 
切换
1 个答案

假设整数是32位的,根据每个整数二进制前的5位,可以划分为32个不同的桶,如果某个桶的个数在内存中放不下,则继续划分,知道内存可以放下为止;然后统计每个桶中的数的个数,就可以中位数一定出现在哪个桶中,而且知道是该桶中第几大数,因为桶的划分是根据二进制前缀来进行划分的,桶之间是排好序的。

 
切换
撰写答案