解决2G内存处理8G数据的问题
一次面试被问到2G内存针对8G数据进行全排序的问题,当时就蒙蔽了,后来研究一下:
思路:使用外部排序+归并排序
- 首先将8G数据分成4个2G数据的文件;
- 分别将4个文件写入内存,进行内部排序,输出存到外部存储;
- 使用多路归并排序对4个有序文件取值,排序,输出最小值,写入外部文件;
- 重复步骤3,直到生成一个8G数据序列。
外部排序参考文章:
https://www.cnblogs.com/haimishasha/p/10898715.html#autoid-0-0-0