老师,你说的外部排序,利用有限内存,处理海量数据
来源:10-3 Collection体系
qq_红_14
2019-10-24
老师,你说的外部排序,利用有限内存,处理海量数据。能不能给一个满分的解决答案啊。
写回答
2回答
-
翔仔
2019-10-25
如果待排序的文件很大,计算机内存不能容纳整个文件,这时候对文件就不能使用内部排序了(这里做一下说明,其实所有的排序都是在内存中做的,这里说的内部排序是指待排序的内容在内存中就可以完成,而外部排序是指待排序的内容不能在内存中一下子完成,它需要做内外存的内容交换),外部排序常采用的排序方法也是归并排序,这种归并方法由两个不同的阶段组成:
1、采用适当的内部排序方法对输入文件的每个片段进行排序,将排好序的片段(成为归并段)写到外部存储器中(通常由一个可用的磁盘作为临时缓冲区),这样临时缓冲区中的每个归并段的内容是有序的。
2、利用归并算法,归并第一阶段生成的归并段,直到只剩下一个归并段为止。
10 -
翔仔
2019-10-25
同学好,并没有所谓的满分答案,只能说根据具体的限制和条件才能给出适合当下的方案,外部排序github上有个例子,同学可以去看看,https://github.com/lemire/externalsortinginjava
我大致看了下,里面写得还是挺标准的
012019-10-25
相似问题