一:1G的数据 你当前只能用 400M内存,怎么进行全排序?
答案:大概思路是这样的:
首先是通过hash的方式,把一个比较大的数据切分成多分小文件。
切分过后,开始做分区的排序,当然,分区的排序是很好做的,问题是如何做全局的排序;
这里面就涉及到一个算法:叫做【归并排序】,我建议大家找时间看一下堆排序和归并排序
上一步我们把大文件切分成多分小文件了,然后又对每一个小文件进行排序,那么现在就要用到归并算法,将已经排序好的这些文件来一个归并排序;最终合并成一个大文件
归并排序大概的算法:
去上网搜索一下,一大堆。把这个搞明白了,以后类似的问题就比较好解决了
http://www.cnblogs.com/jingmoxukong/p/4308823.html
这个是比较好的归并排序帖子
这个是比较好的归并排序帖子