1g内存如何处理10G文件内容

2019-08-01  本文已影响0人  swoft_

思路:

  1. 文件进行拆分
  2. 每个小文件进行排序
  3. 多个小文件执行多路归并合成一个文件,只需要归并找出最小(最大的值)顺序写入文件即可。获取到的文件即是想要的结果。

文件根据大小进行拆分

以行数拆分 -l参数:

split –l 50 原始文件 拆分后文件名前缀

以大小拆分 -b参数:

split –b 50 原始文件 拆分后文件名前缀

排序

排序的方式有很多,下面是快排的实现


image.png

多路归并合成一个文件

image.png

如果需要统计出现的次数,需要加一个权值。
合并完之后,需要从新排序,找出前几的操作。

上一篇 下一篇

猜你喜欢

热点阅读