当前位置:  开发笔记 > 大数据 > 正文

使用MapReduce查找大整数集的中位数

如何解决《使用MapReduce查找大整数集的中位数》经验,为你挑选了1个好方法。

是否有一个快速算法在MapReduce框架上运行,以从一个巨大的整数集中找到中位数?



1> Louis Wasser..:

我就是这样做的.这是顺序quickselect的一种并行版本.(有些map/reduce工具可能不会让你轻松做事......)

选择一个小的,任意的输入集块.按顺序排序.我们将并行使用这些作为一大堆枢轴.调用这个数组pivots,并让它的大小k.

执行map/reduce如下:对于x输入集中的每个值,binary-search查找x相对于的位置pivots; 叫这个职位bucket(x).这是0和之间的整数k.reduce步骤是计算每个桶中的元素数量; 定义bucket[b]xwith 的数量bucket(x) = b.

中位数必须在"中位数桶"中.挑出该中值桶中的所有值,并使用传统的顺序选择算法来查找具有正确索引的元素.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有