分桶法简介
其实本质上还是分而治之的思想,重在“分”的技巧上!
适用范围: 第k大,中位数,不重复或重复的数字
基本原理及要点: 因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行。
相关题目
2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。
有点像鸽巢原理,整数个数为232,也就是,我们可以将这232个数,划分为2^8个区域(比如用单个文件代表一个区域),然后将数据分离到不同的区域,然后不同的区域在利用bitmap就可以直接解决了。也就是说只要有足够的磁盘空间,就可以很方便的解决。
本文介绍了分桶法,一种基于分而治之思想的大数据处理策略,适用于求第k大数、中位数等问题。通过双层桶划分,有效解决内存限制问题。以2.5亿整数找出不重复个数和5亿int找中位数为例,阐述了具体实现思路,包括两次统计和高位、低位的结合处理。
订阅专栏 解锁全文
28

被折叠的 条评论
为什么被折叠?



