sorting - 如何随机排序一个大文件

标签 sorting random large-files

我有一个很大的 txt 文件(优惠券列表用逗号分隔) 优惠券在订单列表中,我需要将其随机化。 但是我的文件太大(大约 16GB),unix 命令 sort 无法管理它——内存问题)。 知道如何以另一种方式将其随机化吗?

最佳答案

这是我会做的。为每个条目生成四个随机位。所有以0000为四位的条目被复制到一个临时文件f0000,所有以0001为四位的条目被复制到一个临时文件f0001,等等。

现在打乱 f000 并将打乱后的条目写入输出文件 fs。打乱 f0001 并将打乱后的条目附加到 fs 等。

很容易看出生成的输出文件 fs 是原始文件的混洗。

如果四位不够,去五位或六位。你明白了。

关于sorting - 如何随机排序一个大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699012/

相关文章:

python - 如何返回列表中每个元素的顺序索引?

php - PHP中没有重复的随机范围

algorithm - 我正在寻找一个好的伪随机数生成器,它需要两个输入而不是一个

ios - Core Data Fetch 请求在大型数据集上变慢

c - 在 Windows 上,_fseeki64 无法正确查找大文件的 SEEK_END

java - 大文件的Spring集成

c - 使用插入排序对数组进行排序

java - 对数组列表进行排序

algorithm - 旅行票问题

Actionscript-3 最大值和最小值之间的随机数