我有一个大约100M +元素(当前已排序)的列表,我想随机化(shuffle)和chunk /拆分成较小的列表(大约50K桶)。在最大化速度方面,最好的方法是什么?
如果他们有快速的预建方法,我可以使用任何库或语言(目前使用项目的node和python)。谢谢!
P.S。这不仅仅是一个理论练习,我试图通过我的实习来解决这个问题,因为我们将使用大约50K数字海洋节点并行运行另一个脚本,这些节点将较小的列表作为输入
答案 0 :(得分:1)
在C或C ++中以最大速度执行此操作。
在数组记录中使用“现代”Fisher-Yates shuffle。使用快速随机,也许可以在stack overflow上找到。
然后,在bucksize(= 50000)偏移处返回数组中元素的地址,例如& array [0],& array [50000],& array [100000] ...