我如何将一个大的列表拆分并拆分成较小的列表,试图最大化速度?

时间:2015-07-11 21:29:51

标签: python node.js split shuffle chunking

我有一个大约100M +元素(当前已排序)的列表,我想随机化(shuffle)和chunk /拆分成较小的列表(大约50K桶)。在最大化速度方面,最好的方法是什么?

如果他们有快速的预建方法,我可以使用任何库或语言(目前使用项目的node和python)。谢谢!

P.S。这不仅仅是一个理论练习,我试图通过我的实习来解决这个问题,因为我们将使用大约50K数字海洋节点并行运行另一个脚本,这些节点将较小的列表作为输入

1 个答案:

答案 0 :(得分:1)

在C或C ++中以最大速度执行此操作。

数组记录中使用“现代”Fisher-Yates shuffle。使用快速随机,也许可以在stack overflow上找到。

然后,在bucksize(= 50000)偏移处返回数组中元素的地址,例如& array [0],& array [50000],& array [100000] ...