老师,你说的外部排序,利用有限内存,处理海量数据

来源:10-3 Collection体系

qq_红_14

2019-10-24

老师,你说的外部排序,利用有限内存,处理海量数据。能不能给一个满分的解决答案啊。

写回答

2回答

翔仔

2019-10-25

如果待排序的文件很大,计算机内存不能容纳整个文件,这时候对文件就不能使用内部排序了(这里做一下说明,其实所有的排序都是在内存中做的,这里说的内部排序是指待排序的内容在内存中就可以完成,而外部排序是指待排序的内容不能在内存中一下子完成,它需要做内外存的内容交换),外部排序常采用的排序方法也是归并排序,这种归并方法由两个不同的阶段组成:

1、采用适当的内部排序方法对输入文件的每个片段进行排序,将排好序的片段(成为归并段)写到外部存储器中(通常由一个可用的磁盘作为临时缓冲区),这样临时缓冲区中的每个归并段的内容是有序的。

2、利用归并算法,归并第一阶段生成的归并段,直到只剩下一个归并段为止。


1
0

翔仔

2019-10-25

同学好,并没有所谓的满分答案,只能说根据具体的限制和条件才能给出适合当下的方案,外部排序github上有个例子,同学可以去看看,https://github.com/lemire/externalsortinginjava

我大致看了下,里面写得还是挺标准的

0
1
qq_红_14
老师,他那个代码我看不太懂,你能简单帮我描述一下思路么,因为我面试的时候被问到过
2019-10-25
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程